Interface QueryBuilder<T>
-
public interface QueryBuilder<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
QueryBuilder.Direction
The sort order of the result set of a query.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
and(T condition1, T condition2)
Return a condition which holds if both sub conditions hold.T
contains(@NotNull java.lang.String relPath, @NotNull java.lang.String searchExpr)
Create a full text search condition.T
eq(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is equal tovalue
.T
exists(@NotNull java.lang.String relPath)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
.T
ge(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is greater than or equal tovalue
.T
gt(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is greater thanvalue
.T
impersonates(@NotNull java.lang.String name)
Create a condition which holds forAuthorizable
s which can impersonate asname
.T
le(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is smaller than or equal tovalue
.T
like(@NotNull java.lang.String relPath, @NotNull java.lang.String pattern)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which matches the pattern inpattern
.T
lt(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is smaller thanvalue
.T
nameMatches(@NotNull java.lang.String pattern)
Create a condition which holds if the name of theAuthorizable
matches apattern
.T
neq(@NotNull java.lang.String relPath, @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is not equal tovalue
.T
not(T condition)
Return a condition which holds ifcondition
does not hold.T
or(T condition1, T condition2)
Return a condition which holds if 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(@Nullable Value bound, long maxCount)
Set limits for the query.void
setScope(@NotNull java.lang.String groupName, boolean declaredOnly)
Set the scope for the query.void
setSelector(@NotNull java.lang.Class<? extends Authorizable> selector)
Set the selector for the query.void
setSortOrder(@NotNull java.lang.String propertyName, @NotNull QueryBuilder.Direction direction)
Set the sort order of theAuthorizable
s returned by the query.void
setSortOrder(@NotNull java.lang.String propertyName, @NotNull QueryBuilder.Direction direction, boolean ignoreCase)
Set the sort order of theAuthorizable
s returned by the query.
-
-
-
Method Detail
-
setSelector
void setSelector(@NotNull @NotNull java.lang.Class<? extends Authorizable> selector)
Set the selector for the query. The selector determines whether the query returns allAuthorizable
s or justUser
s respectivelyGroup
s.- Parameters:
selector
- The selector for the query
-
setScope
void setScope(@NotNull @NotNull java.lang.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
- Iftrue
only declared members of the groups are returned. Otherwise indirect memberships are also considered.
-
setCondition
void setCondition(@NotNull T condition)
Set the condition for the query. The query only includesAuthorizable
s for which this condition holds.- Parameters:
condition
- Condition upon whichAuthorizables
are included in the query result
-
setSortOrder
void setSortOrder(@NotNull @NotNull java.lang.String propertyName, @NotNull @NotNull QueryBuilder.Direction direction, boolean ignoreCase)
Set the sort order of theAuthorizable
s returned by the query. The format of thepropertyName
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 ondirection
- Direction to sort. EitherQueryBuilder.Direction.ASCENDING
orQueryBuilder.Direction.DESCENDING
ignoreCase
- Ignore character case in sort iftrue
. Note: Forfalse
sorting is done lexicographically even for non string properties.
-
setSortOrder
void setSortOrder(@NotNull @NotNull java.lang.String propertyName, @NotNull @NotNull QueryBuilder.Direction direction)
Set the sort order of theAuthorizable
s returned by the query. The format of thepropertyName
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. Character case is taken into account for the sort order.- Parameters:
propertyName
- The name of the property to sort ondirection
- Direction to sort. EitherQueryBuilder.Direction.ASCENDING
orQueryBuilder.Direction.DESCENDING
-
setLimit
void setLimit(@Nullable @Nullable 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 thesort order
property. The query returns at mostmaxCount
Authorizable
s whose values of the sort order property followbound
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 boundmaxCount
- 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 ofAuthorizable
s 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
@NotNull T nameMatches(@NotNull @NotNull java.lang.String pattern)
Create a condition which holds if the name of theAuthorizable
matches apattern
. 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 theid
and theprincipal
.- Parameters:
pattern
- Pattern to match the name of an authorizable.- Returns:
- A condition
-
neq
@NotNull T neq(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is not equal tovalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
eq
@NotNull T eq(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is equal tovalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
lt
@NotNull T lt(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is smaller thanvalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
le
@NotNull T le(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is smaller than or equal tovalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
gt
@NotNull T gt(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is greater thanvalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
ge
@NotNull T ge(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull Value value)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which is greater than or equal tovalue
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertyvalue
- Value to compare the property atrelPath
to- Returns:
- A condition
-
exists
@NotNull T exists(@NotNull @NotNull java.lang.String relPath)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
. The format of therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/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
@NotNull T like(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull java.lang.String pattern)
Create a condition which holds if the node of anAuthorizable
has a property atrelPath
which matches the pattern inpattern
. 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 therelPath
argument is the same as in XPath:@attributeName
for an attribute on this node andrelative/path/@attributeName
for an attribute of a descendant node.- Parameters:
relPath
- Relative path from the authorizable's node to the propertypattern
- Pattern to match the property atrelPath
against- Returns:
- A condition
-
contains
@NotNull T contains(@NotNull @NotNull java.lang.String relPath, @NotNull @NotNull java.lang.String searchExpr)
Create a full text search condition. The condition holds if the node of anAuthorizable
has a property atrelPath
for whichsearchExpr
yields results. The format of therelPath
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 andrelative/path/@attributeName
searches the attributeName property of the descendant node at relative/path. The syntax ofsearchExpr
is[-]value { [OR] [-]value }
.- Parameters:
relPath
- Relative path from the authorizable's node to the propertysearchExpr
- A full text search expression- Returns:
- A condition
-
impersonates
@NotNull T impersonates(@NotNull @NotNull java.lang.String name)
Create a condition which holds forAuthorizable
s which can impersonate asname
.- Parameters:
name
- Name of an authorizable- Returns:
- A condition
-
not
@NotNull T not(@NotNull T condition)
Return a condition which holds ifcondition
does not hold.- Parameters:
condition
- Condition to negate- Returns:
- A condition
-
and
@NotNull T and(@NotNull T condition1, @NotNull T condition2)
Return a condition which holds if both sub conditions hold.- Parameters:
condition1
- first sub conditioncondition2
- second sub condition- Returns:
- A condition
-
-