org.apache.jackrabbit.api.security.user
Interface QueryBuilder<T>

All Known Implementing Classes:
XPathQueryBuilder

public interface QueryBuilder<T>


Nested Class Summary
static class QueryBuilder.Direction
          The sort order of the result set of a query.
 
Method Summary
 T and(T condition1, T condition2)
          Return a condition which holds iff both sub conditions hold.
 T contains(String relPath, String searchExpr)
          Create a full text search condition.
 T eq(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is equal to value.
 T exists(String relPath)
          Create a condition which holds iff the node of an Authorizable has a property at relPath.
 T ge(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is greater than or equal to value.
 T gt(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is greater than value.
 T impersonates(String name)
          Create a condition which holds for Authorizables which can impersonate as name.
 T le(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is smaller than or equal to value.
 T like(String relPath, String pattern)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which matches the pattern in pattern.
 T lt(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is smaller than value.
 T nameMatches(String pattern)
          Create a condition which holds iff the name of the Authorizable matches a pattern.
 T neq(String relPath, Value value)
          Create a condition which holds iff the node of an Authorizable has a property at relPath which is not equal to value.
 T not(T condition)
          Return a condition which holds iff condition does not hold.
 T or(T condition1, T condition2)
          Return a condition which holds iff any of the two sub conditions hold.
 void setCondition(T condition)
          Set the condition for the query.
 void setLimit(long offset, long maxCount)
          Set limits for the query.
 void setLimit(Value bound, long maxCount)
          Set limits for the query.
 void setScope(String groupName, boolean declaredOnly)
          Set the scope for the query.
 void setSelector(Class<? extends Authorizable> selector)
          Set the selector for the query.
 void setSortOrder(String propertyName, QueryBuilder.Direction direction)
          Set the sort order of the Authorizables returned by the query.
 

Method Detail

setSelector

void setSelector(Class<? extends Authorizable> selector)
Set the selector for the query. The selector determines whether the query returns all Authorizables or just Users respectively Groups.

Parameters:
selector - The selector for the query

setScope

void setScope(String groupName,
              boolean declaredOnly)
Set the scope for the query. If set, the query will only return members of a specific group.

Parameters:
groupName - Name of the group to restrict the query to.
declaredOnly - If true only declared members of the groups are returned. Otherwise indirect memberships are also considered.

setCondition

void setCondition(T condition)
Set the condition for the query. The query only includes Authorizables for which this condition holds.

Parameters:
condition - Condition upon which Authorizables are included in the query result

setSortOrder

void setSortOrder(String propertyName,
                  QueryBuilder.Direction direction)
Set the sort order of the Authorizables returned by the query. The format of the propertyName is the same as in XPath: @propertyName sorts on a property of the current node. relative/path/@propertyName sorts on a property of a descendant node.

Parameters:
propertyName - The name of the property to sort on
direction - Direction to sort. Either QueryBuilder.Direction.ASCENDING or QueryBuilder.Direction.DESCENDING

setLimit

void setLimit(Value bound,
              long maxCount)
Set limits for the query. The limits consists of a bound and a maximal number of results. The bound refers to the value of the sort order property. The query returns at most maxCount Authorizables whose values of the sort order property follow bound in the sort direction. This method has no effect if the sort order is not specified.

Parameters:
bound - Bound from where to start returning results. null for no bound
maxCount - Maximal number of results to return. -1 for no limit.

setLimit

void setLimit(long offset,
              long maxCount)
Set limits for the query. The limits consists of an offset and a maximal number of results. offset refers to the offset within the full result set at which the returned result set should start expressed in terms of the number of Authorizables to skip. maxCount sets the maximum size of the result set expressed in terms of the number of authorizables to return.

Parameters:
offset - Offset from where to start returning results. 0 for no offset.
maxCount - Maximal number of results to return. -1 for no limit.

nameMatches

T nameMatches(String pattern)
Create a condition which holds iff the name of the Authorizable matches a pattern. The percent character �%� represents any string of zero or more characters and the underscore character �_� represents any single character. Any literal use of these characters and the backslash character �\� must be escaped with a backslash character. The pattern is matched against the id and the principal.

Parameters:
pattern - Pattern to match the property at relPath against
Returns:
A condition

neq

T neq(String relPath,
      Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is not equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

eq

T eq(String relPath,
     Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

lt

T lt(String relPath,
     Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is smaller than value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

le

T le(String relPath,
     Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is smaller than or equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

gt

T gt(String relPath,
     Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is greater than value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

ge

T ge(String relPath,
     Value value)
Create a condition which holds iff the node of an Authorizable has a property at relPath which is greater than or equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
value - Value to compare the property at relPath to
Returns:
A condition

exists

T exists(String relPath)
Create a condition which holds iff the node of an Authorizable has a property at relPath. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
Returns:
A condition

like

T like(String relPath,
       String pattern)
Create a condition which holds iff the node of an Authorizable has a property at relPath which matches the pattern in pattern. The percent character �%� represents any string of zero or more characters and the underscore character �_� represents any single character. Any literal use of these characters and the backslash character �\� must be escaped with a backslash character. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.

Parameters:
relPath - Relative path from the authorizable's node to the property
pattern - Pattern to match the property at relPath against
Returns:
A condition

contains

T contains(String relPath,
           String searchExpr)
Create a full text search condition. The condition holds iff the node of an Authorizable has a property at relPath for which searchExpr yields results. The format of the relPath argument is the same as in XPath: . searches all properties of the current node, @attributeName searches the attributeName property of the current node, relative/path/. searches all properties of the descendant node at relative/path and relative/path/@attributeName searches the attributeName property of the descendant node at relative/path. The syntax of searchExpr is
[-]value { [OR] [-]value }
.

Parameters:
relPath - Relative path from the authorizable's node to the property
searchExpr - A full text search expression
Returns:
A condition

impersonates

T impersonates(String name)
Create a condition which holds for Authorizables which can impersonate as name.

Parameters:
name - Name of an authorizable
Returns:
A condition

not

T not(T condition)
Return a condition which holds iff condition does not hold.

Parameters:
condition - Condition to negate
Returns:
A condition

and

T and(T condition1,
      T condition2)
Return a condition which holds iff both sub conditions hold.

Parameters:
condition1 - first sub condition
condition2 - second sub condition
Returns:
A condition

or

T or(T condition1,
     T condition2)
Return a condition which holds iff any of the two sub conditions hold.

Parameters:
condition1 - first sub condition
condition2 - second sub condition
Returns:
A condition


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