|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.alfresco.repo.webdav.WebDAVMethod
public abstract class WebDAVMethod
Abstract base class for all the WebDAV method handling classes
Nested Class Summary | |
---|---|
protected class |
WebDAVMethod.Condition
Class used for storing conditions which comes with "If" header of the request |
Field Summary | |
---|---|
protected static org.apache.commons.logging.Log |
logger
|
protected java.util.Map |
m_childToParent
|
protected java.util.LinkedList |
m_conditions
|
protected WebDAVHelper |
m_davHelper
|
protected int |
m_depth
|
protected java.util.Map |
m_parentLockInfo
|
protected javax.servlet.http.HttpServletRequest |
m_request
|
protected java.lang.String |
m_resourceTag
|
protected javax.servlet.http.HttpServletResponse |
m_response
|
protected org.alfresco.service.cmr.repository.NodeRef |
m_rootNodeRef
|
protected java.lang.String |
m_strPath
|
protected java.lang.String |
m_userAgent
|
Constructor Summary | |
---|---|
WebDAVMethod()
Default constructor |
Method Summary | |
---|---|
protected LockInfo |
checkNode(org.alfresco.service.cmr.model.FileInfo fileInfo)
Checks if write operation can be performed on node. |
protected LockInfo |
checkNode(org.alfresco.service.cmr.model.FileInfo fileInfo,
boolean ignoreShared,
boolean lockMethod)
Checks if write operation can be performed on node. |
protected org.dom4j.io.XMLWriter |
createXMLWriter()
Create an XML writer for the response |
void |
execute()
Executes the method, wrapping the call to WebDAVMethod.executeImpl() in an appropriate transaction
and handling the error conditions. |
protected abstract void |
executeImpl()
Access the content repository to satisfy the request and generates the appropriate WebDAV response. |
protected void |
flushXML(org.dom4j.io.XMLWriter xml)
Flushs a XML Writer. |
protected void |
generateLockDiscoveryXML(org.dom4j.io.XMLWriter xml,
org.alfresco.service.cmr.model.FileInfo lockNodeInfo,
boolean emptyNamespace,
java.lang.String scope,
java.lang.String depth,
java.lang.String lToken,
java.lang.String owner)
Generates the lock discovery XML response |
protected void |
generateLockDiscoveryXML(org.dom4j.io.XMLWriter xml,
org.alfresco.service.cmr.model.FileInfo lockNodeInfo,
LockInfo lockInfo)
Generates the lock discovery XML response |
protected java.lang.String |
generateNamespaceDeclarations(java.util.HashMap nameSpaces)
Generates a list of namespace declarations for the response |
protected org.alfresco.service.cmr.action.ActionService |
getActionService()
Convenience method to return the action service |
protected org.alfresco.service.cmr.security.AuthenticationService |
getAuthenticationService()
Convenience method to return the authentication service |
protected org.alfresco.service.cmr.repository.ContentService |
getContentService()
Convenience method to return the content service |
protected WebDAVHelper |
getDAVHelper()
Return the WebDAV protocol helper |
int |
getDepth()
Return the property find depth |
protected org.alfresco.service.cmr.model.FileFolderService |
getFileFolderService()
|
protected org.alfresco.service.cmr.lock.LockService |
getLockService()
Convenience method to return the lock service |
protected org.alfresco.service.cmr.repository.MimetypeService |
getMimetypeService()
Convenience method to return the mimetype service |
protected org.alfresco.service.namespace.NamespaceService |
getNamespaceService()
Convenience method to return the namespace service |
protected org.alfresco.service.cmr.model.FileInfo |
getNodeForPath(org.alfresco.service.cmr.repository.NodeRef rootNodeRef,
java.lang.String path,
java.lang.String servletPath)
Get the file info for the given paths |
protected LockInfo |
getNodeLockInfo(org.alfresco.service.cmr.model.FileInfo nodeInfo)
Returns node Lock token in consideration of WebDav lock depth. |
protected org.alfresco.service.cmr.repository.NodeService |
getNodeService()
Convenience method to return the node service |
protected java.lang.String |
getPath()
Return the relative path |
protected org.alfresco.service.cmr.security.PermissionService |
getPermissionService()
Convenience method to return the permission service |
protected org.w3c.dom.Document |
getRequestBodyAsDocument()
Retrieves the request body as an XML document |
protected org.alfresco.service.cmr.repository.NodeRef |
getRootNodeRef()
Return the root node |
protected org.alfresco.service.cmr.search.SearchService |
getSearchService()
Convenience method to return the search service |
protected org.alfresco.service.ServiceRegistry |
getServiceRegistry()
Return the service registry |
protected java.lang.String |
getServletPath()
|
protected int |
getStatusForAccessDeniedException()
Determines status code for AccessDeniedException based on client's HTTP headers. |
protected org.alfresco.service.transaction.TransactionService |
getTransactionService()
Convenience method to return the transaction service |
protected java.lang.String |
getURLForPath(javax.servlet.http.HttpServletRequest request,
java.lang.String path,
boolean isFolder)
Returns a URL that could be used to access the given path. |
protected org.alfresco.service.cmr.model.FileInfo |
getWorkingCopy(org.alfresco.service.cmr.repository.NodeRef nodeRef)
Returns a working copy of node for current user. |
protected boolean |
isReadOnly()
Override and return true if the method is a query method only. |
protected void |
parseDepthHeader()
Parses "Depth" request header |
protected void |
parseIfHeader()
Parses "If" header of the request. |
protected abstract void |
parseRequestBody()
Parses the given request body represented as an XML document and sets any necessary context ready for execution. |
protected abstract void |
parseRequestHeaders()
Parses the HTTP headers of the request and sets any necessary context ready for execution. |
void |
setDetails(javax.servlet.http.HttpServletRequest req,
javax.servlet.http.HttpServletResponse resp,
WebDAVHelper davHelper,
org.alfresco.service.cmr.repository.NodeRef rootNode)
Set the request/response details |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static org.apache.commons.logging.Log logger
protected javax.servlet.http.HttpServletRequest m_request
protected javax.servlet.http.HttpServletResponse m_response
protected WebDAVHelper m_davHelper
protected org.alfresco.service.cmr.repository.NodeRef m_rootNodeRef
protected java.lang.String m_strPath
protected java.lang.String m_userAgent
protected java.util.LinkedList m_conditions
protected java.lang.String m_resourceTag
protected int m_depth
protected java.util.Map m_childToParent
protected java.util.Map m_parentLockInfo
Constructor Detail |
---|
public WebDAVMethod()
Method Detail |
---|
public void setDetails(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, WebDAVHelper davHelper, org.alfresco.service.cmr.repository.NodeRef rootNode)
req
- HttpServletRequestresp
- HttpServletResponseregistry
- ServiceRegistryrootNode
- NodeRefprotected boolean isReadOnly()
public final int getDepth()
public void execute() throws WebDAVServerException
WebDAVMethod.executeImpl()
in an appropriate transaction
and handling the error conditions.
WebDAVServerException
protected abstract void executeImpl() throws WebDAVServerException, java.lang.Exception
WebDAVServerException
- a general server exception
java.lang.Exception
- any unhandled exceptionprotected abstract void parseRequestBody() throws WebDAVServerException
WebDAVServerException
protected abstract void parseRequestHeaders() throws WebDAVServerException
WebDAVServerException
protected org.w3c.dom.Document getRequestBodyAsDocument() throws WebDAVServerException
WebDAVServerException
protected void parseDepthHeader() throws WebDAVServerException
WebDAVServerException
protected void parseIfHeader() throws WebDAVServerException
WebDAVServerException
protected final WebDAVHelper getDAVHelper()
protected final org.alfresco.service.ServiceRegistry getServiceRegistry()
protected final org.alfresco.service.transaction.TransactionService getTransactionService()
protected final org.alfresco.service.cmr.repository.NodeService getNodeService()
protected final org.alfresco.service.cmr.search.SearchService getSearchService()
protected final org.alfresco.service.namespace.NamespaceService getNamespaceService()
protected final org.alfresco.service.cmr.model.FileFolderService getFileFolderService()
protected final org.alfresco.service.cmr.repository.ContentService getContentService()
protected final org.alfresco.service.cmr.repository.MimetypeService getMimetypeService()
protected final org.alfresco.service.cmr.lock.LockService getLockService()
protected final org.alfresco.service.cmr.action.ActionService getActionService()
protected final org.alfresco.service.cmr.security.PermissionService getPermissionService()
protected final org.alfresco.service.cmr.security.AuthenticationService getAuthenticationService()
protected final java.lang.String getServletPath()
protected final org.alfresco.service.cmr.repository.NodeRef getRootNodeRef()
protected java.lang.String getPath()
protected org.dom4j.io.XMLWriter createXMLWriter() throws java.io.IOException
java.io.IOException
protected void generateLockDiscoveryXML(org.dom4j.io.XMLWriter xml, org.alfresco.service.cmr.model.FileInfo lockNodeInfo, LockInfo lockInfo) throws java.lang.Exception
xml
- XMLWriterlockNode
- NodeRef
java.lang.Exception
protected void generateLockDiscoveryXML(org.dom4j.io.XMLWriter xml, org.alfresco.service.cmr.model.FileInfo lockNodeInfo, boolean emptyNamespace, java.lang.String scope, java.lang.String depth, java.lang.String lToken, java.lang.String owner) throws java.lang.Exception
xml
- XMLWriterlockNode
- NodeRefemptyNamespace
- boolean True if namespace should be empty. Used to avoid bugs in WebDAV clients.scope
- String lock scopedepth
- String lock depthlToken
- String locktokenowner
- String lock owner
java.lang.Exception
protected java.lang.String generateNamespaceDeclarations(java.util.HashMap nameSpaces)
protected LockInfo checkNode(org.alfresco.service.cmr.model.FileInfo fileInfo, boolean ignoreShared, boolean lockMethod) throws WebDAVServerException
fileInfo
- - node's file infoignoreShared
- - if true ignores shared lockslockMethod
- - must be true if used from lock method
WebDAVServerException
- if node has shared or exclusive lock
or If header preconditions failedprotected LockInfo checkNode(org.alfresco.service.cmr.model.FileInfo fileInfo) throws WebDAVServerException
fileInfo
-
WebDAVServerException
- if node has shared or exclusive lock
or If header preconditions failedprotected LockInfo getNodeLockInfo(org.alfresco.service.cmr.model.FileInfo nodeInfo)
fileInfo
- node
protected org.alfresco.service.cmr.model.FileInfo getNodeForPath(org.alfresco.service.cmr.repository.NodeRef rootNodeRef, java.lang.String path, java.lang.String servletPath) throws org.alfresco.service.cmr.model.FileNotFoundException
rootNodeRef
- the acting webdav rootpath
- the path to search forservletPath
- the base servlet path, which may be null or empty
org.alfresco.service.cmr.model.FileNotFoundException
- if the path doesn't refer to a valid nodeprotected java.lang.String getURLForPath(javax.servlet.http.HttpServletRequest request, java.lang.String path, boolean isFolder)
request
- HttpServletRequestpath
- the path to search forisFolder
- indicates file or folder is requested
protected void flushXML(org.dom4j.io.XMLWriter xml) throws java.io.IOException
xml
- XMLWriter that should be flushed
java.io.IOException
protected org.alfresco.service.cmr.model.FileInfo getWorkingCopy(org.alfresco.service.cmr.repository.NodeRef nodeRef)
nodeRef
- node reference
protected int getStatusForAccessDeniedException()
public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |