remm        01/07/23 23:43:46

  Modified:    src/webdav/server/org/apache/slide/webdav/method
                        DeleteMethod.java
  Log:
  - Delete now extends AbstractMultistatusResponseMethod. That avoids
    a lot of code duplication.
  
  Revision  Changes    Path
  1.10      +11 -128   
jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java
  
  Index: DeleteMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DeleteMethod.java 2001/07/19 11:10:59     1.9
  +++ DeleteMethod.java 2001/07/24 06:43:46     1.10
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java,v
 1.9 2001/07/19 11:10:59 juergen Exp $
  - * $Revision: 1.9 $
  - * $Date: 2001/07/19 11:10:59 $
  + * $Header: 
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/DeleteMethod.java,v
 1.10 2001/07/24 06:43:46 remm Exp $
  + * $Revision: 1.10 $
  + * $Date: 2001/07/24 06:43:46 $
    *
    * ====================================================================
    *
  @@ -83,7 +83,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Remy Maucherat</a>
    */
  -public class DeleteMethod extends WebdavMethod {
  +public class DeleteMethod extends AbstractMultistatusResponseMethod {
       
       
       // ----------------------------------------------------- Instance Variables
  @@ -143,7 +143,7 @@
               // If it's not a collection, we don't want to give a 207,
               // because it's silly, and it confuses many clients (such as
               // MS Web Folders).
  -            if(isCollection) {
  +            if (isCollection) {
                   String errorMessage = generateErrorMessage(dme);
                   // Write it on the servlet writer
                   resp.setStatus(WebdavStatus.SC_MULTI_STATUS);
  @@ -156,31 +156,11 @@
                           (WebdavStatus.SC_INTERNAL_SERVER_ERROR);
                   }
               } else {
  -                Enumeration nestedExceptionsList =
  -                    dme.enumerateExceptions();
  -                
  -                SlideException ex =
  -                    (SlideException) nestedExceptionsList.nextElement();
  -                try {
  -                    throw ex;
  -                } catch(ObjectNotFoundException e) {
  -                    resp.setStatus(WebdavStatus.SC_NOT_FOUND);
  -                } catch(AccessDeniedException e) {
  -                    resp.setStatus(WebdavStatus.SC_FORBIDDEN);
  -                } catch(ObjectAlreadyExistsException e) {
  -                    resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -                } catch(ServiceAccessException e) {
  -                    resp.setStatus(WebdavStatus.SC_BAD_GATEWAY);
  -                } catch(LinkedObjectNotFoundException e) {
  -                    resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -                } catch(RevisionNotFoundException e) {
  -                    resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -                } catch(ObjectLockedException e) {
  -                    resp.setStatus(WebdavStatus.SC_LOCKED);
  -                } catch(SlideException e) {
  -                    resp.setStatus(WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -                }
  -                
  +                // Returning 207 on non-collection requests is generally
  +                // considered bad. So let's not do it, since this way
  +                // makes clients generally behave better.
  +                resp.setStatus(
  +                    
getErrorCode((SlideException)dme.enumerateExceptions().nextElement()));
               }
               //
               // make sure the transaction is aborted
  @@ -190,103 +170,6 @@
           }
           
       }
  -    
  -    /**
  -     * Generate an XML error message.
  -     *
  -     * @param macroException Nested exception
  -     * @return String XML message
  -     */
  -    protected String generateErrorMessage
  -        (DeleteMacroException macroException) {
  -        
  -        XMLPrinter errorMessage = new XMLPrinter();
  -        
  -        errorMessage.writeXMLHeader();
  -        errorMessage.writeElement("d", "DAV", "multistatus",
  -                                  XMLPrinter.OPENING);
  -        
  -        Enumeration nestedExceptionsList =
  -            macroException.enumerateExceptions();
  -        
  -        while (nestedExceptionsList.hasMoreElements()) {
  -            
  -            errorMessage.writeElement("d", "DAV", "response",
  -                                      XMLPrinter.OPENING);
  -            
  -            SlideException ex =
  -                (SlideException) nestedExceptionsList.nextElement();
  -            
  -            String status = new String();
  -            
  -            try {
  -                throw ex;
  -            } catch(ObjectNotFoundException e) {
  -                generateStatusText(errorMessage, e.getObjectUri(),
  -                                   WebdavStatus.SC_NOT_FOUND);
  -            } catch(AccessDeniedException e) {
  -                generateStatusText(errorMessage, e.getObjectUri(),
  -                                   WebdavStatus.SC_FORBIDDEN);
  -            } catch(ObjectAlreadyExistsException e) {
  -                generateStatusText(errorMessage, e.getObjectUri(),
  -                                   WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -            } catch(ServiceAccessException e) {
  -                generateStatusText(errorMessage, e.getMessage(),
  -                                   WebdavStatus.SC_BAD_GATEWAY);
  -            } catch(LinkedObjectNotFoundException e) {
  -                generateStatusText(errorMessage, e.getTargetUri(),
  -                                   WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -            } catch(RevisionNotFoundException e) {
  -                generateStatusText(errorMessage, e.getObjectUri(),
  -                                   WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -            } catch(ObjectLockedException e) {
  -                generateStatusText(errorMessage, e.getObjectUri(),
  -                                   WebdavStatus.SC_LOCKED);
  -            } catch(SlideException e) {
  -                generateStatusText(errorMessage, e.getMessage(),
  -                                   WebdavStatus.SC_INTERNAL_SERVER_ERROR);
  -            }
  -            
  -            errorMessage.writeElement("d", "DAV", "response",
  -                                      XMLPrinter.CLOSING);
  -            
  -        }
  -        
  -        errorMessage.writeElement("d", "DAV", "multistatus",
  -                                  XMLPrinter.CLOSING);
  -        
  -        return errorMessage.toString();
  -        
  -    }
       
  -    
  -    /**
  -     * Generate status text.
  -     *
  -     * @param printer XML Printer
  -     * @param href Uri of the object
  -     * @param statusCode HTTP status code of the error
  -     */
  -    protected void generateStatusText(XMLPrinter printer, String href,
  -                                      int statusCode) {
  -        printer.writeElement("d", "href", XMLPrinter.OPENING);
  -        printer.writeText(URLEncode(href));
  -        printer.writeElement("d", "href", XMLPrinter.CLOSING);
  -        printer.writeElement("d", "status", XMLPrinter.OPENING);
  -        printer.writeText("HTTP/1.1 " + statusCode + " "
  -                              + WebdavStatus.getStatusText(statusCode));
  -        printer.writeElement("d", "status", XMLPrinter.CLOSING);
  -    }
  -    
  -    
  -    
  -    /**
  -     * Returns true
  -     */
  -    protected boolean methodNeedsTransactionSupport() {
  -        return true;
  -    }
  -    
  -    
  -    
  +
   }
  
  
  

Reply via email to