Package org.apache.webdav.lib.methods
Class PropFindMethod
- java.lang.Object
-
- org.apache.commons.httpclient.HttpMethodBase
-
- org.apache.webdav.lib.methods.HttpRequestBodyMethodBase
-
- org.apache.webdav.lib.methods.XMLResponseMethodBase
-
- org.apache.webdav.lib.methods.PropFindMethod
-
- 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>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.webdav.lib.methods.XMLResponseMethodBase
XMLResponseMethodBase.OptionsResponse, XMLResponseMethodBase.Response, XMLResponseMethodBase.ResponseWithinMultistatus, XMLResponseMethodBase.SingleResponse
-
-
Field Summary
Fields Modifier and Type Field Description static int
ALL
Request of all properties name and value.static int
BY_NAME
Request of named properties.protected int
depth
Depth.static int
NAMES
Request of all properties name.protected java.lang.String
prefix
The namespace abbreviation that prefixes DAV tagsprotected PropertyName[]
propertyNames
Property name list.protected int
type
Type of the Propfind.-
Fields inherited from class org.apache.webdav.lib.methods.XMLResponseMethodBase
builder, decodeResponseHrefs, responseURLs
-
Fields inherited from class org.apache.commons.httpclient.HttpMethodBase
effectiveVersion, statusLine
-
Fields inherited from interface org.apache.webdav.lib.methods.DepthSupport
DEPTH_0, DEPTH_1, DEPTH_INFINITY
-
-
Constructor Summary
Constructors Constructor Description PropFindMethod()
Method constructor.PropFindMethod(java.lang.String path)
Method constructor.PropFindMethod(java.lang.String path, int depth)
Method constructor.PropFindMethod(java.lang.String path, int depth, int type)
Method constructor.PropFindMethod(java.lang.String path, int depth, java.util.Enumeration propertyNames)
Method constructor.PropFindMethod(java.lang.String path, java.util.Enumeration propertyNames)
Method constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addRequestHeaders(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn)
Generate additional headers needed by the request.protected java.lang.String
generateRequestBody()
DAV requests that contain a body must override this function to generate that body.java.util.Enumeration
getAllResponseURLs()
This method returns an enumeration of URL paths.int
getDepth()
Depth getter.java.lang.String
getName()
java.util.Enumeration
getResponseProperties(java.lang.String urlPath)
Returns an enumeration ofProperty
objects.int
getType()
Type getter.void
recycle()
Reset the State of the class to its initial state, so that it can be used again.void
setDepth(int depth)
Depth setter.void
setPropertyNames(java.util.Enumeration propertyNames)
Property names setter.void
setRequestHeader(java.lang.String headerName, java.lang.String headerValue)
Set a request header value, redirecting the special case of the "Depth" header to invokesetDepth(int)
instead.void
setType(int type)
Type setter.-
Methods inherited from class org.apache.webdav.lib.methods.XMLResponseMethodBase
convertElementToProperty, getDebug, getRequestContentLength, getResponseDocument, getResponseHashtable, getResponses, getResponseURLs, parseResponse, parseXMLResponse, readResponseBody, setDebug, setDecodeResponseHrefs, setDocument, setResponseHashtable, writeRequestBody
-
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, addResponseFooter, addUserAgentRequestHeader, checkNotUsed, checkUsed, execute, generateRequestLine, getAuthenticationRealm, getContentCharSet, getDoAuthentication, getEffectiveVersion, getFollowRedirects, getHostAuthState, getHostConfiguration, getMethodRetryHandler, 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, setResponseStream, setStrictMode, setURI, shouldCloseConnection, validate, writeRequest, writeRequestHeaders, writeRequestLine
-
-
-
-
Field Detail
-
BY_NAME
public static final int BY_NAME
Request of named properties.- See Also:
- Constant Field Values
-
ALL
public static final int ALL
Request of all properties name and value.- See Also:
- Constant Field Values
-
NAMES
public static final int NAMES
Request of all properties name.- See Also:
- Constant Field Values
-
type
protected int type
Type of the Propfind.
-
propertyNames
protected PropertyName[] propertyNames
Property name list.
-
depth
protected int depth
Depth.
-
prefix
protected java.lang.String prefix
The namespace abbreviation that prefixes DAV tags
-
-
Constructor Detail
-
PropFindMethod
public PropFindMethod()
Method constructor.
-
PropFindMethod
public PropFindMethod(java.lang.String path)
Method constructor.
-
PropFindMethod
public PropFindMethod(java.lang.String path, int depth)
Method constructor.
-
PropFindMethod
public PropFindMethod(java.lang.String path, int depth, int type)
Method constructor.
-
PropFindMethod
public PropFindMethod(java.lang.String path, java.util.Enumeration propertyNames)
Method constructor.
-
PropFindMethod
public PropFindMethod(java.lang.String path, int depth, java.util.Enumeration propertyNames)
Method constructor.
-
-
Method Detail
-
setRequestHeader
public void setRequestHeader(java.lang.String headerName, java.lang.String headerValue)
Set a request header value, redirecting the special case of the "Depth" header to invokesetDepth(int)
instead.- Specified by:
setRequestHeader
in interfaceorg.apache.commons.httpclient.HttpMethod
- Overrides:
setRequestHeader
in classorg.apache.commons.httpclient.HttpMethodBase
- Parameters:
headerName
- Header nameheaderValue
- 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 interfaceDepthSupport
- Parameters:
depth
- New depth value
-
getDepth
public int getDepth()
Depth getter.- Specified by:
getDepth
in interfaceDepthSupport
- Returns:
- int depth value
-
setPropertyNames
public void setPropertyNames(java.util.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 interfaceorg.apache.commons.httpclient.HttpMethod
- Overrides:
recycle
in classXMLResponseMethodBase
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceorg.apache.commons.httpclient.HttpMethod
- Specified by:
getName
in classorg.apache.commons.httpclient.HttpMethodBase
-
addRequestHeaders
public void addRequestHeaders(org.apache.commons.httpclient.HttpState state, org.apache.commons.httpclient.HttpConnection conn) throws java.io.IOException, org.apache.commons.httpclient.HttpException
Generate additional headers needed by the request.- Overrides:
addRequestHeaders
in classorg.apache.commons.httpclient.HttpMethodBase
- Parameters:
state
- State tokenconn
- The connection being used to make the request.- Throws:
java.io.IOException
org.apache.commons.httpclient.HttpException
-
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.
- Overrides:
generateRequestBody
in classXMLResponseMethodBase
-
getAllResponseURLs
public java.util.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 java.util.Enumeration getResponseProperties(java.lang.String urlPath)
Returns an enumeration ofProperty
objects.
-
-