1 package com.ibm.webdav.protocol.http; 2 3 17 import java.io.*; 18 import java.util.*; 19 import java.util.logging.*; 20 21 import javax.servlet.http.*; 22 23 import org.w3c.dom.*; 24 25 import com.ibm.webdav.*; 26 import com.ibm.webdav.impl.*; 27 28 31 public class DeleteMethod extends WebDAVMethod { 32 33 private static Logger m_logger = Logger.getLogger(DeleteMethod.class.getName()); 34 35 41 public DeleteMethod(HttpServletRequest request, HttpServletResponse response) throws WebDAVException { 42 super(request, response); 43 methodName = "DELETE"; 44 } 45 48 public WebDAVStatus execute() { 49 setStatusCode(WebDAVStatus.SC_NO_CONTENT); try { 51 MultiStatus multiStatus = resource.delete(context); 52 Enumeration responses = multiStatus.getResponses(); 53 if (responses.hasMoreElements()) { 54 MethodResponse methodResponse = (MethodResponse) responses.nextElement(); 55 if (responses.hasMoreElements()) { 56 context.getResponseContext().contentType("text/xml"); 58 setStatusCode(WebDAVStatus.SC_MULTI_STATUS); 59 setResponseHeaders(); 60 61 Document results = multiStatus.asXML(); 63 if (ResourceImpl.debug) { 65 System.err.println("delete results:"); 66 PrintWriter pout = new PrintWriter(System.err); 67 pout.print(XMLUtility.printNode(results.getDocumentElement())); 68 } 70 PrintWriter pout = new PrintWriter(response.getWriter(), false); 71 pout.print(XMLUtility.printNode(results.getDocumentElement())); 72 pout.close(); 74 } else { 75 setStatusCode(methodResponse.getStatus()); 78 setResponseHeaders(); 79 } 80 } else { 81 setStatusCode(WebDAVStatus.SC_NO_CONTENT); 83 setResponseHeaders(); 84 } 85 } catch (WebDAVException exc) { 86 m_logger.log(Level.INFO, exc.getLocalizedMessage() + " - " + request.getQueryString()); 87 setStatusCode(exc.getStatusCode()); 88 } catch (Exception exc) { 89 m_logger.log(Level.WARNING, exc.getMessage(), exc); 90 setStatusCode(WebDAVStatus.SC_INTERNAL_SERVER_ERROR); 91 } 92 return context.getStatusCode(); 93 } 94 } 95 | Popular Tags |