Class PropFindMethod

java.lang.Object
org.apache.commons.httpclient.HttpMethodBase
All Implemented Interfaces:
org.apache.commons.httpclient.HttpMethod, DepthSupport

public class PropFindMethod extends XMLResponseMethodBase implements DepthSupport
This class implements the WebDAV PROPFIND Method.

The PROPFIND method retrieves properties defined on the resource identified by the Request-URI, if the resource does not have any internal members, or on the resource identified by the Request-URI and potentially its member resources, if the resource is a collection that has internal member URIs.

A typical request looks like this:


 PROPFIND /file HTTP/1.1
 Host: www.foo.bar
 Content-type: text/xml; charset="utf-8"
 Content-Length: xxxx

 <?xml version="1.0" encoding="utf-8" ?>
   <D:propfind xmlns:D="DAV:">
   <D:prop xmlns:R="http://www.foo.bar/boxschema/">
     <R:bigbox/>
     <R:author/>
     <R:DingALing/>
     <R:Random/>
   </D:prop>
 </D:propfind>
 
  • Field Details

    • BY_NAME

      public static final int BY_NAME
      Request of named properties.
      See Also:
    • ALL

      public static final int ALL
      Request of all properties name and value.
      See Also:
    • NAMES

      public static final int NAMES
      Request of all properties name.
      See Also:
    • type

      protected int type
      Type of the Propfind.
    • propertyNames

      protected PropertyName[] propertyNames
      Property name list.
    • depth

      protected int depth
      Depth.
    • prefix

      protected String prefix
      The namespace abbreviation that prefixes DAV tags
  • Constructor Details

    • PropFindMethod

      public PropFindMethod()
      Method constructor.
    • PropFindMethod

      public PropFindMethod(String path)
      Method constructor.
    • PropFindMethod

      public PropFindMethod(String path, int depth)
      Method constructor.
    • PropFindMethod

      public PropFindMethod(String path, int depth, int type)
      Method constructor.
    • PropFindMethod

      public PropFindMethod(String path, Enumeration propertyNames)
      Method constructor.
    • PropFindMethod

      public PropFindMethod(String path, int depth, Enumeration propertyNames)
      Method constructor.
  • Method Details

    • setRequestHeader

      public void setRequestHeader(String headerName, String headerValue)
      Set a request header value, redirecting the special case of the "Depth" header to invoke setDepth(int) instead.
      Specified by:
      setRequestHeader in interface org.apache.commons.httpclient.HttpMethod
      Overrides:
      setRequestHeader in class org.apache.commons.httpclient.HttpMethodBase
      Parameters:
      headerName - Header name
      headerValue - Header value
    • setType

      public void setType(int type)
      Type setter.
      Parameters:
      type - New type value
    • getType

      public int getType()
      Type getter.
      Returns:
      int type value
    • setDepth

      public void setDepth(int depth)
      Depth setter.
      Specified by:
      setDepth in interface DepthSupport
      Parameters:
      depth - New depth value
    • getDepth

      public int getDepth()
      Depth getter.
      Specified by:
      getDepth in interface DepthSupport
      Returns:
      int depth value
    • setPropertyNames

      public void setPropertyNames(Enumeration propertyNames)
      Property names setter. The enumeration may contain strings with or without a namespace prefix but the preferred way is to provide PropertyName objects.
      Parameters:
      propertyNames - List of the property names
    • recycle

      public void recycle()
      Description copied from class: XMLResponseMethodBase
      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 XMLResponseMethodBase
    • getName

      public String getName()
      Specified by:
      getName in interface org.apache.commons.httpclient.HttpMethod
      Specified by:
      getName in class org.apache.commons.httpclient.HttpMethodBase
    • addRequestHeaders

      public void addRequestHeaders(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws IOException, org.apache.commons.httpclient.HttpException
      Generate additional headers needed by the request.
      Overrides:
      addRequestHeaders in class org.apache.commons.httpclient.HttpMethodBase
      Parameters:
      state - State token
      conn - The connection being used to make the request.
      Throws:
      IOException
      org.apache.commons.httpclient.HttpException
    • 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.

      Overrides:
      generateRequestBody in class XMLResponseMethodBase
    • getAllResponseURLs

      public Enumeration getAllResponseURLs()
      This method returns an enumeration of URL paths. If the PropFindMethod was sent to the URL of a collection, then there will be multiple URLs. The URLs are picked out of the <D:href> elements of the response.
      Returns:
      an enumeration of URL paths as Strings
    • getResponseProperties

      public Enumeration getResponseProperties(String urlPath)
      Returns an enumeration of Property objects.