org.apache.jackrabbit.webdav.security.report
Class PrincipalSearchReport

java.lang.Object
  extended by org.apache.jackrabbit.webdav.security.report.AbstractSecurityReport
      extended by org.apache.jackrabbit.webdav.security.report.PrincipalSearchReport
All Implemented Interfaces:
Report, XmlSerializable

public class PrincipalSearchReport
extends AbstractSecurityReport

The PrincipalSearchReport performs a search for all principals that match the search criteria specified in the request.

The following XML structure is required in the request body:

 <!ELEMENT principal-property-search ((property-search+), prop?, apply-to-principal-collection-set?) >
 <!ELEMENT property-search (prop, match) >
  prop: see RFC 2518, Section 12.11
 <!ELEMENT match #PCDATA >
 <!ELEMENT apply-to-principal-collection-set #EMPTY >
 
DAV:property-search contains lists the properties to be searched inside the DAV:prop element and the query string inside the DAV:match element. Multiple DAV:property-search elements or multiple elements within the DAV:prop element will be interpreted with a logical AND.

DAV:prop lists the property names to be reported in the response for each of the principle resources found.

DAV:apply-to-principal-collection-set: Optional empty element. If present in the request body the search will be executed over all members of the collections that are listed as values in the DAV:principal-collection-set property present on the resource the report has been requested for. Otherwise the search is limited to all members (at any depth) of that resource itself.

The response body must contain a single DAV:multistatus XML element.


Nested Class Summary
protected  class PrincipalSearchReport.SearchArgument
          Inner utility class preparing the query arguments present in the DAV:property-search element(s).
 
Field Summary
static String REPORT_NAME
          The report name
static ReportType REPORT_TYPE
          The report type
static String XML_APPLY_TO_PRINCIPAL_COLLECTION_SET
           
static String XML_MATCH
           
static String XML_PROPERTY_SEARCH
           
 
Fields inherited from class org.apache.jackrabbit.webdav.security.report.AbstractSecurityReport
responses
 
Constructor Summary
PrincipalSearchReport()
           
 
Method Summary
 PrincipalSearchReport.SearchArgument[] getSearchArguments()
          Retrive the search arguments used to run the search for principals.
 String[] getSearchRoots()
          Retrieve the the locations where the search should be performed.
 ReportType getType()
          Returns the registered type of this report.
 void init(DavResource resource, ReportInfo info)
          Checks if the given resource and report info are not null, that the requested report type matches this implementation and that no other Depth header than 0 is present.
 void setResponses(MultiStatusResponse[] responses)
          Write the search result back to the report.
 
Methods inherited from class org.apache.jackrabbit.webdav.security.report.AbstractSecurityReport
isMultiStatusReport, toXml
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_APPLY_TO_PRINCIPAL_COLLECTION_SET

public static final String XML_APPLY_TO_PRINCIPAL_COLLECTION_SET
See Also:
Constant Field Values

XML_PROPERTY_SEARCH

public static final String XML_PROPERTY_SEARCH
See Also:
Constant Field Values

XML_MATCH

public static final String XML_MATCH
See Also:
Constant Field Values

REPORT_NAME

public static final String REPORT_NAME
The report name

See Also:
Constant Field Values

REPORT_TYPE

public static final ReportType REPORT_TYPE
The report type

Constructor Detail

PrincipalSearchReport

public PrincipalSearchReport()
Method Detail

getType

public ReportType getType()
Description copied from interface: Report
Returns the registered type of this report.

Returns:
the type of this report.
See Also:
Report.getType()

init

public void init(DavResource resource,
                 ReportInfo info)
          throws DavException
Description copied from class: AbstractSecurityReport
Checks if the given resource and report info are not null, that the requested report type matches this implementation and that no other Depth header than 0 is present.

Specified by:
init in interface Report
Overrides:
init in class AbstractSecurityReport
Throws:
DavException
See Also:
Report.init(DavResource, ReportInfo)

getSearchRoots

public String[] getSearchRoots()
Retrieve the the locations where the search should be performed.
Note, that the search result must be converted to MultiStatusResponses that must be returned back to this report.

Returns:
href of collections that act as start for the search.
See Also:
setResponses(MultiStatusResponse[])

getSearchArguments

public PrincipalSearchReport.SearchArgument[] getSearchArguments()
Retrive the search arguments used to run the search for principals.
Note, that the search result must be converted to MultiStatusResponses that must be returned back to this report.

Returns:
array of SearchArgument used to run the principal search.
See Also:
setResponses(MultiStatusResponse[])

setResponses

public void setResponses(MultiStatusResponse[] responses)
Write the search result back to the report.

Parameters:
responses -


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.