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 
     
    class 
    An abstract class that models a DAV:response.
    (package private) class 
    A class that models the DAV:response element within a multistatus.
    (package private) class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected DocumentBuilder
    Document builder.
    protected String
     
    protected Vector
    Vector of response nodes, to keep track of insertion order FIXME: the above Hashtable and this Vector should be ported to plain Collections

    Fields inherited from class org.apache.commons.httpclient.HttpMethodBase

    effectiveVersion, statusLine
  • Constructor Summary

    Constructors
    Constructor
    Description
    Method constructor.
    Method constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static Property
    This method creates a property implementation from an element.
    protected String
    DAV requests that contain a body must override this function to generate that body.
    int
    Debug property getter.
    protected int
    Return the length (in bytes) of my request body, suitable for use in a Content-Length header.
    Response document getter.
    protected Hashtable
     
    Return an enumeration containing the responses.
    protected Vector
     
    void
    parseResponse(InputStream input, org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
    Parse response.
    protected void
     
    protected void
    readResponseBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
     
    void
    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
    Sets whether the href in responses are decoded, as early as possible.
    protected void
     
    protected void
     
    protected boolean
    writeRequestBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
    Write the request body to the given HttpConnection.

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • builder

      protected DocumentBuilder builder
      Document builder.
    • responseURLs

      protected 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 String decodeResponseHrefs
  • Constructor Details

    • XMLResponseMethodBase

      public XMLResponseMethodBase()
      Method constructor.
    • XMLResponseMethodBase

      public XMLResponseMethodBase(String uri)
      Method constructor.
      Parameters:
      uri - the URI to request
  • Method Details

    • getResponseDocument

      public Document getResponseDocument()
      Response document getter.
      Returns:
      Document response document
    • getResponses

      public 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(String encoding)
      Sets whether the href in responses are decoded, as early as possible. The href 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 interface org.apache.commons.httpclient.HttpMethod
      Overrides:
      recycle in class HttpRequestBodyMethodBase
    • readResponseBody

      protected void readResponseBody(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws IOException, org.apache.commons.httpclient.HttpException
      Overrides:
      readResponseBody in class org.apache.commons.httpclient.HttpMethodBase
      Throws:
      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 class HttpRequestBodyMethodBase
      Returns:
      0, indicating that the request has no body.
    • generateRequestBody

      protected 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 IOException, org.apache.commons.httpclient.HttpException
      Write the request body to the given HttpConnection.

      This implementation writes any computed body and returns true.

      Overrides:
      writeRequestBody in class HttpRequestBodyMethodBase
      Parameters:
      state - the client state
      conn - the connection to write to
      Returns:
      true
      Throws:
      IOException - when i/o errors occur reading the response
      org.apache.commons.httpclient.HttpException - when a protocol error occurs or state is invalid
    • parseResponse

      public void parseResponse(InputStream input, org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws IOException, org.apache.commons.httpclient.HttpException
      Parse response.
      Parameters:
      input - Input stream
      Throws:
      IOException
      org.apache.commons.httpclient.HttpException
    • parseXMLResponse

      protected void parseXMLResponse(InputStream input) throws IOException, org.apache.commons.httpclient.HttpException
      Throws:
      IOException
      org.apache.commons.httpclient.HttpException
    • getResponseHashtable

      protected Hashtable getResponseHashtable()
    • getResponseURLs

      protected Vector getResponseURLs()
    • convertElementToProperty

      protected static Property convertElementToProperty(XMLResponseMethodBase.Response response, 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 the org.apache.webdav.lib.properties package.
    • setDocument

      protected void setDocument(Document doc)
    • setResponseHashtable

      protected void setResponseHashtable(Hashtable h)