Package org.apache.webdav.lib.methods
Class XMLResponseMethodBase
- java.lang.Object
-
- org.apache.commons.httpclient.HttpMethodBase
-
- org.apache.webdav.lib.methods.HttpRequestBodyMethodBase
-
- org.apache.webdav.lib.methods.XMLResponseMethodBase
-
- All Implemented Interfaces:
org.apache.commons.httpclient.HttpMethod
- Direct Known Subclasses:
AclMethod
,AclReportMethod
,BindMethod
,CheckinMethod
,CheckoutMethod
,CopyMethod
,DeleteMethod
,LabelMethod
,LockMethod
,MkWorkspaceMethod
,MoveMethod
,OptionsMethod
,PollMethod
,PropFindMethod
,PropPatchMethod
,RebindMethod
,ReportMethod
,SearchMethod
,SubscribeMethod
,UnbindMethod
,UncheckoutMethod
,UnlockMethod
,UnsubscribeMethod
,UpdateMethod
,VersionControlMethod
public abstract class XMLResponseMethodBase extends HttpRequestBodyMethodBase
Utility class for XML response parsing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
XMLResponseMethodBase.OptionsResponse
class
XMLResponseMethodBase.Response
An abstract class that models a DAV:response.(package private) class
XMLResponseMethodBase.ResponseWithinMultistatus
A class that models the DAV:response element within a multistatus.(package private) class
XMLResponseMethodBase.SingleResponse
-
Field Summary
Fields Modifier and Type Field Description protected javax.xml.parsers.DocumentBuilder
builder
Document builder.protected java.lang.String
decodeResponseHrefs
protected java.util.Vector
responseURLs
Vector of response nodes, to keep track of insertion order FIXME: the above Hashtable and this Vector should be ported to plain Collections
-
Constructor Summary
Constructors Constructor Description XMLResponseMethodBase()
Method constructor.XMLResponseMethodBase(java.lang.String uri)
Method constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static Property
convertElementToProperty(XMLResponseMethodBase.Response response, org.w3c.dom.Element element)
This method creates a property implementation from an element.protected java.lang.String
generateRequestBody()
DAV requests that contain a body must override this function to generate that body.int
getDebug()
Debug property getter.protected int
getRequestContentLength()
Return the length (in bytes) of my request body, suitable for use in a Content-Length header.org.w3c.dom.Document
getResponseDocument()
Response document getter.protected java.util.Hashtable
getResponseHashtable()
java.util.Enumeration
getResponses()
Return an enumeration containing the responses.protected java.util.Vector
getResponseURLs()
void
parseResponse(java.io.InputStream input, org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
Parse response.protected void
parseXMLResponse(java.io.InputStream input)
protected void
readResponseBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
void
recycle()
Reset the State of the class to its initial state, so that it can be used again.void
setDebug(int debug)
Debug property setter.void
setDecodeResponseHrefs(java.lang.String encoding)
Sets whether the href in responses are decoded, as early as possible.protected void
setDocument(org.w3c.dom.Document doc)
protected void
setResponseHashtable(java.util.Hashtable h)
protected boolean
writeRequestBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
Write the request body to the givenHttpConnection
.-
Methods inherited from class org.apache.webdav.lib.methods.HttpRequestBodyMethodBase
isRequestContentAlreadySet, readContinueCode, setRequestBody, setRequestBody, setRequestBody, setRequestBody, setRequestBody
-
Methods inherited from class org.apache.commons.httpclient.HttpMethodBase
abort, addCookieRequestHeader, addHostRequestHeader, addProxyConnectionHeader, addRequestHeader, addRequestHeader, addRequestHeaders, addResponseFooter, addUserAgentRequestHeader, checkNotUsed, checkUsed, execute, generateRequestLine, getAuthenticationRealm, getContentCharSet, getDoAuthentication, getEffectiveVersion, getFollowRedirects, getHostAuthState, getHostConfiguration, getMethodRetryHandler, getName, getParams, getPath, getProxyAuthenticationRealm, getProxyAuthState, getQueryString, getRecoverableExceptionCount, getRequestCharSet, getRequestHeader, getRequestHeaderGroup, getRequestHeaders, getRequestHeaders, getResponseBody, getResponseBody, getResponseBodyAsStream, getResponseBodyAsString, getResponseBodyAsString, getResponseCharSet, getResponseContentLength, getResponseFooter, getResponseFooters, getResponseHeader, getResponseHeaderGroup, getResponseHeaders, getResponseHeaders, getResponseStream, getResponseTrailerHeaderGroup, getStatusCode, getStatusLine, getStatusText, getURI, hasBeenUsed, isAborted, isConnectionCloseForced, isHttp11, isRequestSent, isStrictMode, processCookieHeaders, processResponseBody, processResponseHeaders, processStatusLine, readResponse, readResponseHeaders, readStatusLine, releaseConnection, removeRequestHeader, removeRequestHeader, responseBodyConsumed, setConnectionCloseForced, setDoAuthentication, setFollowRedirects, setHostConfiguration, setHttp11, setMethodRetryHandler, setParams, setPath, setQueryString, setQueryString, setRequestHeader, setRequestHeader, setResponseStream, setStrictMode, setURI, shouldCloseConnection, validate, writeRequest, writeRequestHeaders, writeRequestLine
-
-
-
-
Field Detail
-
builder
protected javax.xml.parsers.DocumentBuilder builder
Document builder.
-
responseURLs
protected java.util.Vector responseURLs
Vector of response nodes, to keep track of insertion order FIXME: the above Hashtable and this Vector should be ported to plain Collections
-
decodeResponseHrefs
protected java.lang.String decodeResponseHrefs
-
-
Method Detail
-
getResponseDocument
public org.w3c.dom.Document getResponseDocument()
Response document getter.- Returns:
- Document response document
-
getResponses
public java.util.Enumeration getResponses()
Return an enumeration containing the responses.- Returns:
- An enumeration containing objects implementing the ResponseEntity interface
-
setDebug
public void setDebug(int debug)
Debug property setter.- Parameters:
int
- Debug
-
getDebug
public int getDebug()
Debug property getter.
-
setDecodeResponseHrefs
public void setDecodeResponseHrefs(java.lang.String encoding)
Sets whether the href in responses are decoded, as early as possible. Thehref
data in responses is often url-encoded, but not alwyas in a comparable way. Set this to a non-null value to decode the hrefs as early as possible.- Parameters:
encoding
- The encoding used in while decoding (UTF-8 is recommended)
-
recycle
public void recycle()
Reset the State of the class to its initial state, so that it can be used again.- Specified by:
recycle
in interfaceorg.apache.commons.httpclient.HttpMethod
- Overrides:
recycle
in classHttpRequestBodyMethodBase
-
readResponseBody
protected void readResponseBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws java.io.IOException, org.apache.commons.httpclient.HttpException
- Overrides:
readResponseBody
in classorg.apache.commons.httpclient.HttpMethodBase
- Throws:
java.io.IOException
org.apache.commons.httpclient.HttpException
-
getRequestContentLength
protected int getRequestContentLength()
Return the length (in bytes) of my request body, suitable for use in a Content-Length header.Return -1 when the content-length is unknown.
This implementation returns 0, indicating that the request has no body.
- Overrides:
getRequestContentLength
in classHttpRequestBodyMethodBase
- Returns:
- 0, indicating that the request has no body.
-
generateRequestBody
protected java.lang.String generateRequestBody()
DAV requests that contain a body must override this function to generate that body.The default behavior simply returns an empty body.
-
writeRequestBody
protected boolean writeRequestBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws java.io.IOException, org.apache.commons.httpclient.HttpException
Write the request body to the givenHttpConnection
.This implementation writes any computed body and returns true.
- Overrides:
writeRequestBody
in classHttpRequestBodyMethodBase
- Parameters:
state
- the client stateconn
- the connection to write to- Returns:
- true
- Throws:
java.io.IOException
- when i/o errors occur reading the responseorg.apache.commons.httpclient.HttpException
- when a protocol error occurs or state is invalid
-
parseResponse
public void parseResponse(java.io.InputStream input, org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws java.io.IOException, org.apache.commons.httpclient.HttpException
Parse response.- Parameters:
input
- Input stream- Throws:
java.io.IOException
org.apache.commons.httpclient.HttpException
-
parseXMLResponse
protected void parseXMLResponse(java.io.InputStream input) throws java.io.IOException, org.apache.commons.httpclient.HttpException
- Throws:
java.io.IOException
org.apache.commons.httpclient.HttpException
-
getResponseHashtable
protected java.util.Hashtable getResponseHashtable()
-
getResponseURLs
protected java.util.Vector getResponseURLs()
-
convertElementToProperty
protected static Property convertElementToProperty(XMLResponseMethodBase.Response response, org.w3c.dom.Element element)
This method creates a property implementation from an element. It treats known properties (i.e., the DAV properties) specially. These properties are instantiated as an implementation from theorg.apache.webdav.lib.properties
package.
-
setDocument
protected void setDocument(org.w3c.dom.Document doc)
-
setResponseHashtable
protected void setResponseHashtable(java.util.Hashtable h)
-
-