net.sf.webdav.methods
Class AbstractMethod

java.lang.Object
  extended by net.sf.webdav.methods.AbstractMethod
All Implemented Interfaces:
IMethodExecutor
Direct Known Subclasses:
DeterminableMethod, DoCopy, DoDelete, DoHead, DoLock, DoMkcol, DoMove, DoPropfind, DoProppatch, DoPut

public abstract class AbstractMethod
extends Object
implements IMethodExecutor


Field Summary
protected static int BUF_SIZE
          size of the io-buffer
protected static SimpleDateFormat CREATION_DATE_FORMAT
          Simple date format for the creation date ISO 8601 representation (partial).
protected static int DEFAULT_TIMEOUT
          Default lock timeout value.
protected static int INFINITY
          Default depth is infite.
protected static SimpleDateFormat LAST_MODIFIED_DATE_FORMAT
          Simple date format for the last modified date.
protected static int MAX_TIMEOUT
          Maximum lock timeout.
protected static int TEMP_TIMEOUT
          Timeout for temporary locks
protected static boolean TEMPORARY
          Boolean value to temporary lock resources (for method locks)
protected static URLEncoder URL_ENCODER
          Array containing the safe characters set.
 
Constructor Summary
AbstractMethod()
           
 
Method Summary
protected  boolean checkLocks(ITransaction transaction, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, IResourceLocks resourceLocks, String path)
          Checks if locks on resources at the given path exists and if so checks the If-Header to make sure the If-Header corresponds to the locked resource.
protected  String getCleanPath(String path)
          removes a / at the end of the path string, if present
protected  int getDepth(javax.servlet.http.HttpServletRequest req)
          reads the depth header from the request and returns it as a int
protected  DocumentBuilder getDocumentBuilder()
          Return JAXP document builder instance.
protected  String getETag(StoredObject so)
          Get the ETag associated with a file.
protected  String[] getLockIdFromIfHeader(javax.servlet.http.HttpServletRequest req)
           
protected  String getLockIdFromLockTokenHeader(javax.servlet.http.HttpServletRequest req)
           
protected  String getParentPath(String path)
          creates the parent path from the given path by removing the last '/' and everything after that
protected  String getRelativePath(javax.servlet.http.HttpServletRequest request)
          Return the relative path associated with this servlet.
protected  String rewriteUrl(String path)
          URL rewriter.
protected  void sendReport(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, Hashtable<String,Integer> errorList)
          Send a multistatus element containing a complete error report to the client.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.webdav.IMethodExecutor
execute
 

Field Detail

URL_ENCODER

protected static URLEncoder URL_ENCODER
Array containing the safe characters set.


INFINITY

protected static final int INFINITY
Default depth is infite.

See Also:
Constant Field Values

CREATION_DATE_FORMAT

protected static final SimpleDateFormat CREATION_DATE_FORMAT
Simple date format for the creation date ISO 8601 representation (partial).


LAST_MODIFIED_DATE_FORMAT

protected static final SimpleDateFormat LAST_MODIFIED_DATE_FORMAT
Simple date format for the last modified date. (RFC 822 updated by RFC 1123)


BUF_SIZE

protected static int BUF_SIZE
size of the io-buffer


DEFAULT_TIMEOUT

protected static final int DEFAULT_TIMEOUT
Default lock timeout value.

See Also:
Constant Field Values

MAX_TIMEOUT

protected static final int MAX_TIMEOUT
Maximum lock timeout.

See Also:
Constant Field Values

TEMPORARY

protected static final boolean TEMPORARY
Boolean value to temporary lock resources (for method locks)

See Also:
Constant Field Values

TEMP_TIMEOUT

protected static final int TEMP_TIMEOUT
Timeout for temporary locks

See Also:
Constant Field Values
Constructor Detail

AbstractMethod

public AbstractMethod()
Method Detail

getRelativePath

protected String getRelativePath(javax.servlet.http.HttpServletRequest request)
Return the relative path associated with this servlet.

Parameters:
request - The servlet request we are processing

getParentPath

protected String getParentPath(String path)
creates the parent path from the given path by removing the last '/' and everything after that

Parameters:
path - the path
Returns:
parent path

getCleanPath

protected String getCleanPath(String path)
removes a / at the end of the path string, if present

Parameters:
path - the path
Returns:
the path without trailing /

getDocumentBuilder

protected DocumentBuilder getDocumentBuilder()
                                      throws javax.servlet.ServletException
Return JAXP document builder instance.

Throws:
javax.servlet.ServletException

getDepth

protected int getDepth(javax.servlet.http.HttpServletRequest req)
reads the depth header from the request and returns it as a int

Parameters:
req -
Returns:
the depth from the depth header

rewriteUrl

protected String rewriteUrl(String path)
URL rewriter.

Parameters:
path - Path which has to be rewiten
Returns:
the rewritten path

getETag

protected String getETag(StoredObject so)
Get the ETag associated with a file.

Parameters:
StoredObject - StoredObject to get resourceLength, lastModified and a hashCode of StoredObject
Returns:
the ETag

getLockIdFromIfHeader

protected String[] getLockIdFromIfHeader(javax.servlet.http.HttpServletRequest req)

getLockIdFromLockTokenHeader

protected String getLockIdFromLockTokenHeader(javax.servlet.http.HttpServletRequest req)

checkLocks

protected boolean checkLocks(ITransaction transaction,
                             javax.servlet.http.HttpServletRequest req,
                             javax.servlet.http.HttpServletResponse resp,
                             IResourceLocks resourceLocks,
                             String path)
                      throws IOException,
                             LockFailedException
Checks if locks on resources at the given path exists and if so checks the If-Header to make sure the If-Header corresponds to the locked resource. Returning true if no lock exists or the If-Header is corresponding to the locked resource

Parameters:
req - Servlet request
resp - Servlet response
resourceLocks -
path - path to the resource
errorList - List of error to be displayed
Returns:
true if no lock on a resource with the given path exists or if the If-Header corresponds to the locked resource
Throws:
IOException
LockFailedException

sendReport

protected void sendReport(javax.servlet.http.HttpServletRequest req,
                          javax.servlet.http.HttpServletResponse resp,
                          Hashtable<String,Integer> errorList)
                   throws IOException
Send a multistatus element containing a complete error report to the client.

Parameters:
req - Servlet request
resp - Servlet response
errorList - List of error to be displayed
Throws:
IOException


Copyright © 2013 KnowledgePlaza. All Rights Reserved.