Class MethodBase
java.lang.Object
org.bedework.webdav.servlet.common.MethodBase
- All Implemented Interfaces:
org.bedework.util.logging.Logged,SecureXml
- Direct Known Subclasses:
AclMethod,CopyMethod,DeleteMethod,GetMethod,LockMethod,OptionsMethod,PostMethod,PropFindMethod,PropPatchMethod,PutMethod,ReportMethod,UnlockMethod
public abstract class MethodBase
extends Object
implements org.bedework.util.logging.Logged, SecureXml
Base class for all webdav servlet methods.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAllow servlet to create method. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected booleanprotected WebdavNsIntfnamespace interface for this requestprotected org.bedework.util.xml.XmlEmit -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddDavHeader(javax.servlet.http.HttpServletResponse resp, WebdavNsNode node) protected voidaddHeaders(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, WebdavNsNode node) voidAdd a namespaceprotected voidvoidcdataProperty(QName tag, String attrName, String attrVal, String val) Emit a property in a cdataprotected voidcheckDepth(int depth, int val) voidcheckServerInfo(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) protected voidprotected intdefaultDepth(int depth, int def) abstract voiddoMethod(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) voiddoPropFind(WebdavNsNode node, Collection<WebdavProperty> props) Build the response for a single node for a propfind requestvoidEmit an empty tagvoidEmit an empty tag corresponding to a nodeprotected voidflush()protected Collection<Element>getChildren(Node nd) protected Element[]getChildrenArray(Node nd) protected Stringorg.bedework.util.logging.BwLoggergetNsAbbrev(String ns) Get a namespace abbreviationGet namespace interfaceprotected org.bedework.util.misc.response.GetEntityResponse<Element>getOnlyChild(Node nd) getResourceUri(javax.servlet.http.HttpServletRequest req) Get the decoded and fixed resource URIprotected Stringabstract voidinit()Called at each requestvoidinit(WebdavNsIntf nsIntf, boolean dumpContent) Called at each requestprotected booleanprotected voidprotected voidopenTagNoNewline(QName tag) protected DocumentparseContent(int contentLength, Reader reader) Parse a reader and return the DOM representation.protected DocumentparseContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) Parse the Webdav request body, and return the DOM representation.voidEmit a propertyvoidEmit a propertyvoidpropertyTagVal(QName tag, QName tagVal) Emit a property with a qname valueprotected voidstartEmit(javax.servlet.http.HttpServletResponse resp) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.bedework.util.logging.Logged
audit, debug, debug, debug, enableAuditLogger, enableErrorLogger, enableMetricsLogger, error, error, error, getLogLevel, info, isAuditLoggerEnabled, isErrorLoggerEnabled, isMetricsDebugEnabled, isMetricsLoggerEnabled, metrics, setLoggerClass, setLoggerClass, trace, trace, trace, warnMethods inherited from interface org.bedework.webdav.servlet.common.SecureXml
parseXmlSafely
-
Field Details
-
dumpContent
protected boolean dumpContent -
hasBriefHeader
protected boolean hasBriefHeader -
nsIntf
namespace interface for this request -
xml
protected org.bedework.util.xml.XmlEmit xml
-
-
Constructor Details
-
MethodBase
public MethodBase()
-
-
Method Details
-
init
public abstract void init()Called at each request -
doMethod
public abstract void doMethod(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) - Parameters:
req- http requestresp- http response
-
getNsIntf
Get namespace interface- Returns:
- WebdavNsIntf
-
getResourceUri
Get the decoded and fixed resource URI- Parameters:
req- Servlet request object- Returns:
- String fixed up uri
-
defaultDepth
protected int defaultDepth(int depth, int def) -
checkDepth
protected void checkDepth(int depth, int val) -
getStatus
-
addStatus
-
checkServerInfo
public void checkServerInfo(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) -
parseContent
protected Document parseContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) Parse the Webdav request body, and return the DOM representation.- Parameters:
req- Servlet request objectresp- Servlet response object for bad status- Returns:
- Document Parsed body or null for no body
- Throws:
WebdavException- Some error occurred.
-
parseContent
Parse a reader and return the DOM representation.- Parameters:
contentLength- Content lengthreader- Reader- Returns:
- Document Parsed body or null for no body
-
getChildren
-
getChildrenArray
-
getOnlyChild
-
getElementContent
-
isEmpty
-
startEmit
protected void startEmit(javax.servlet.http.HttpServletResponse resp) -
addNs
Add a namespace- Parameters:
val- String namespace- Throws:
RuntimeException- on fatal error
-
getNsAbbrev
Get a namespace abbreviation- Parameters:
ns- namespace- Returns:
- String abbrev
-
openTag
-
openTagNoNewline
-
closeTag
-
emptyTag
Emit an empty tag- Parameters:
tag- qname- Throws:
RuntimeException- on fatal error
-
emptyTag
Emit an empty tag corresponding to a node- Parameters:
nd- xml node- Throws:
RuntimeException- on fatal error
-
property
Emit a property- Parameters:
tag- qnameval- element value- Throws:
RuntimeException- on fatal error
-
cdataProperty
Emit a property in a cdata- Parameters:
tag- qnameval- element value- Throws:
RuntimeException- on fatal error
-
property
Emit a property- Parameters:
tag- qnameval- element value- Throws:
RuntimeException- on fatal error
-
propertyTagVal
Emit a property with a qname value- Parameters:
tag- qnametagVal- qname- Throws:
RuntimeException- on fatal error
-
flush
protected void flush() -
getLogger
public org.bedework.util.logging.BwLogger getLogger()- Specified by:
getLoggerin interfaceorg.bedework.util.logging.Logged
-