org.apache.webdav.lib.methods
Class SearchMethod
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.SearchMethod
- All Implemented Interfaces:
- HttpMethod
public class SearchMethod
- extends XMLResponseMethodBase
This class implements the WebDAV SEARCH Method.
The SEARCH method initiates a server-side search. The body of the
request defines the query. The server responds with a text/xml entity
matching the WebDAV PROPFIND response.
According to
the DASL draft a typical request looks like this:
SEARCH /folder/ HTTP/1.1
Host: www.foo.bar
Content-type: text/xml; charset="utf-8"
Content-Length: xxxx
<?xml version="1.0"?>
<D:searchrequest xmlns:D = "DAV:" >
<D:basicsearch>
<D:select>
<D:prop><D:getcontentlength/></D:prop>
</D:select>
<D:from>
<D:scope>
<D:href>/folder/</D:href>
<D:depth>infinity</D:depth>
</D:scope>
</D:from>
</D:basicsearch>
</D:searchrequest>
However, other query grammars may be used. A typical request using
the
SQL-based grammar implemented in Microsoft's Web Storage System
(currently shipping with Exchange 2000 and SharePoint Portal Server)
looks like this:
SEARCH /folder/ HTTP/1.1
Host: www.foo.bar
Content-type: text/xml; charset="utf-8"
Content-Length: xxxx
<?xml version="1.0"?>
<D:searchrequest xmlns:D = "DAV:" >
<D:sql>
SELECT "DAV:contentclass", "DAV:displayname"
FROM "/folder/"
WHERE "DAV:ishidden" = false
AND "DAV:isfolder" = false
</D:sql>
</D:searchrequest>
Field Summary |
protected java.lang.String |
prefix
The namespace abbreviation that prefixes DAV tags |
Constructor Summary |
SearchMethod()
Method constructor. |
SearchMethod(java.lang.String path)
Method constructor. |
SearchMethod(java.lang.String path,
java.lang.String query)
Construct a SearchMethod using the given XML request body. |
Methods inherited from class org.apache.webdav.lib.methods.XMLResponseMethodBase |
convertElementToProperty, getDebug, getRequestContentLength, getResponseDocument, getResponseHashtable, getResponses, getResponseURLs, parseXMLResponse, readResponseBody, setDebug, setDecodeResponseHrefs, setDocument, setResponseHashtable, writeRequestBody |
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, getResponseBodyAsStream, getResponseBodyAsString, getResponseCharSet, getResponseContentLength, getResponseFooter, getResponseFooters, getResponseHeader, getResponseHeaderGroup, getResponseHeaders, getResponseHeaders, getResponseStream, getResponseTrailerHeaderGroup, getStatusCode, getStatusLine, getStatusText, getURI, hasBeenUsed, isAborted, isConnectionCloseForced, isHttp11, isRequestSent, isStrictMode, 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 |
prefix
protected java.lang.String prefix
- The namespace abbreviation that prefixes DAV tags
SearchMethod
public SearchMethod()
- Method constructor.
SearchMethod
public SearchMethod(java.lang.String path)
- Method constructor.
SearchMethod
public SearchMethod(java.lang.String path,
java.lang.String query)
- Construct a SearchMethod using the given XML request body.
- Parameters:
path
- Relative path to the WebDAV resource
(presumably a collection).query
- Complete request body in XML including a search query in
your favorite grammar.
getName
public java.lang.String getName()
- Specified by:
getName
in interface HttpMethod
- Specified by:
getName
in class HttpMethodBase
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 HttpMethod
- Overrides:
recycle
in class XMLResponseMethodBase
addRequestHeaders
public void addRequestHeaders(HttpState state,
HttpConnection conn)
throws java.io.IOException,
HttpException
- Generate additional headers needed by the request.
- Overrides:
addRequestHeaders
in class HttpMethodBase
- Parameters:
state
- State tokenconn
- the connection
- Throws:
java.io.IOException
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 class XMLResponseMethodBase
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 of
Property
objects.
parseResponse
public void parseResponse(java.io.InputStream input,
HttpState state,
HttpConnection conn)
throws java.io.IOException,
HttpException
- Parse response.
- Overrides:
parseResponse
in class XMLResponseMethodBase
- Parameters:
input
- Input stream
- Throws:
java.io.IOException
HttpException