Class QueryObjectModelFactoryImpl
java.lang.Object
org.apache.jackrabbit.spi.commons.query.qom.QueryObjectModelFactoryImpl
- All Implemented Interfaces:
QueryObjectModelConstants,QueryObjectModelFactory
QueryObjectModelFactoryImpl implements the query object model
factory from JSR 283.-
Field Summary
Fields inherited from interface javax.jcr.query.qom.QueryObjectModelConstants
JCR_JOIN_TYPE_INNER, JCR_JOIN_TYPE_LEFT_OUTER, JCR_JOIN_TYPE_RIGHT_OUTER, JCR_OPERATOR_EQUAL_TO, JCR_OPERATOR_GREATER_THAN, JCR_OPERATOR_GREATER_THAN_OR_EQUAL_TO, JCR_OPERATOR_LESS_THAN, JCR_OPERATOR_LESS_THAN_OR_EQUAL_TO, JCR_OPERATOR_LIKE, JCR_OPERATOR_NOT_EQUAL_TO, JCR_ORDER_ASCENDING, JCR_ORDER_DESCENDING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionand(Constraint constraint1, Constraint constraint2) Performs a logical conjunction of two other constraints.ascending(DynamicOperand operand) Orders by the value of the specified operand, in ascending order.bindVariable(String bindVariableName) Evaluates to the value of a bind variable.Tests whether a node in the default selector is a child of a node reachable by a specified absolute path.Tests whether a node in the specified selector is a child of a node reachable by a specified absolute path.childNodeJoinCondition(String childSelectorName, String parentSelectorName) Tests whether a first selector's node is a child of a second selector's node.Identifies a property in the default selector to include in the tabular view of query results.Identifies a property in the default selector to include in the tabular view of query results.Identifies a property in the specified selector to include in the tabular view of query results.comparison(DynamicOperand left, String operatorName, StaticOperand right) Filters node-tuples based on the outcome of a binary operation.createQuery(Selector selector, Constraint constraint, Ordering[] orderings, Column[] columns) Creates a query with one selector.createQuery(Source source, Constraint constraint, Ordering[] orderings, Column[] columns) Creates a query with one or more selectors.descendantNode(String path) Tests whether a node in the default selector is a descendant of a node reachable by a specified absolute path.descendantNode(String selectorName, String path) Tests whether a node in the specified selector is a descendant of a node reachable by a specified absolute path.descendantNodeJoinCondition(String descendantSelectorName, String ancestorSelectorName) Tests whether a first selector's node is a descendant of a second selector's node.descending(DynamicOperand operand) Orders by the value of the specified operand, in descending order.equiJoinCondition(String selector1Name, String property1Name, String selector2Name, String property2Name) Tests whether the value of a property in a first selector is equal to the value of a property in a second selector.fullTextSearch(String selectorName, String propertyName, StaticOperand fullTextSearchExpression) Performs a full-text search against the specified selector.fullTextSearch(String propertyName, StaticOperand fullTextSearchExpression) Performs a full-text search against the default selector.Evaluates to aDOUBLEvalue equal to the full-text search score of a node in the default selector.fullTextSearchScore(String selectorName) Evaluates to aDOUBLEvalue equal to the full-text search score of a node in the specified selector.join(Source left, Source right, String joinTypeName, JoinCondition joinCondition) Performs a join between two node-tuple sources.length(PropertyValue propertyValue) Evaluates to the length (or lengths, if multi-valued) of a property.Evaluates to a literal value.lowerCase(DynamicOperand operand) Evaluates to the lower-case string value (or values, if multi-valued) of an operand.Evaluates to aNAMEvalue equal to the local (unprefixed) name of a node in the default selector.nodeLocalName(String selectorName) Evaluates to aNAMEvalue equal to the local (unprefixed) name of a node in the specified selector.nodeName()Evaluates to aNAMEvalue equal to the prefix-qualified name of a node in the default selector.Evaluates to aNAMEvalue equal to the prefix-qualified name of a node in the specified selector.not(Constraint constraint) Performs a logical negation of another constraint.or(Constraint constraint1, Constraint constraint2) Performs a logical disjunction of two other constraints.propertyExistence(String propertyName) Tests the existence of a property in the default selector.propertyExistence(String selectorName, String propertyName) Tests the existence of a property in the specified selector.propertyValue(String propertyName) Evaluates to the value (or values, if multi-valued) of a property of the default selector.propertyValue(String selectorName, String propertyName) Evaluates to the value (or values, if multi-valued) of a property in the specified selector.Tests whether a node in the default selector is reachable by a specified absolute path.Tests whether a node in the specified selector is reachable by a specified absolute path.sameNodeJoinCondition(String selector1Name, String selector2Name) Tests whether a first selector's node is the same as a second selector's node.sameNodeJoinCondition(String selector1Name, String selector2Name, String selector2Path) Tests whether a first selector's node is the same as a node identified by relative path from a second selector's node.Selects a subset of the nodes in the repository based on node type.Selects a subset of the nodes in the repository based on node type.upperCase(DynamicOperand operand) Evaluates to the upper-case string value (or values, if multi-valued) of an operand.
-
Constructor Details
-
QueryObjectModelFactoryImpl
-
-
Method Details
-
createQuery
public QueryObjectModel createQuery(Selector selector, Constraint constraint, Ordering[] orderings, Column[] columns) throws InvalidQueryException, RepositoryException Creates a query with one selector.The specified selector will be the default selector of the query.
- Parameters:
selector- the selector; non-nullconstraint- the constraint, or null if noneorderings- zero or more orderings; null is equivalent to a zero-length arraycolumns- the columns; null is equivalent to a zero-length array- Returns:
- the query; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
createQuery
public QueryObjectModel createQuery(Source source, Constraint constraint, Ordering[] orderings, Column[] columns) throws InvalidQueryException, RepositoryException Creates a query with one or more selectors.If
sourceis a selector, that selector is the default selector of the query. Otherwise the query does not have a default selector.- Specified by:
createQueryin interfaceQueryObjectModelFactory- Parameters:
source- the node-tuple source; non-nullconstraint- the constraint, or null if noneorderings- zero or more orderings; null is equivalent to a zero-length arraycolumns- the columns; null is equivalent to a zero-length array- Returns:
- the query; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
selector
Selects a subset of the nodes in the repository based on node type.The selector name is the node type name.
- Parameters:
nodeTypeName- the name of the required node type; non-null- Returns:
- the selector; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
selector
public Selector selector(String nodeTypeName, String selectorName) throws InvalidQueryException, RepositoryException Selects a subset of the nodes in the repository based on node type.- Specified by:
selectorin interfaceQueryObjectModelFactory- Parameters:
nodeTypeName- the name of the required node type; non-nullselectorName- the selector name; non-null- Returns:
- the selector; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
join
public Join join(Source left, Source right, String joinTypeName, JoinCondition joinCondition) throws InvalidQueryException, RepositoryException Performs a join between two node-tuple sources.- Specified by:
joinin interfaceQueryObjectModelFactory- Parameters:
left- the left node-tuple source; non-nullright- the right node-tuple source; non-nulljoinTypeName- eitherjoinCondition- the join condition; non-null- Returns:
- the join; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
equiJoinCondition
public EquiJoinCondition equiJoinCondition(String selector1Name, String property1Name, String selector2Name, String property2Name) throws InvalidQueryException, RepositoryException Tests whether the value of a property in a first selector is equal to the value of a property in a second selector.- Specified by:
equiJoinConditionin interfaceQueryObjectModelFactory- Parameters:
selector1Name- the name of the first selector; non-nullproperty1Name- the property name in the first selector; non-nullselector2Name- the name of the second selector; non-nullproperty2Name- the property name in the second selector; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
sameNodeJoinCondition
public SameNodeJoinCondition sameNodeJoinCondition(String selector1Name, String selector2Name) throws InvalidQueryException, RepositoryException Tests whether a first selector's node is the same as a second selector's node.- Parameters:
selector1Name- the name of the first selector; non-nullselector2Name- the name of the second selector; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
sameNodeJoinCondition
public SameNodeJoinCondition sameNodeJoinCondition(String selector1Name, String selector2Name, String selector2Path) throws InvalidQueryException, RepositoryException Tests whether a first selector's node is the same as a node identified by relative path from a second selector's node.- Specified by:
sameNodeJoinConditionin interfaceQueryObjectModelFactory- Parameters:
selector1Name- the name of the first selector; non-nullselector2Name- the name of the second selector; non-nullselector2Path- the path relative to the second selector; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
childNodeJoinCondition
public ChildNodeJoinCondition childNodeJoinCondition(String childSelectorName, String parentSelectorName) throws InvalidQueryException, RepositoryException Tests whether a first selector's node is a child of a second selector's node.- Specified by:
childNodeJoinConditionin interfaceQueryObjectModelFactory- Parameters:
childSelectorName- the name of the child selector; non-nullparentSelectorName- the name of the parent selector; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
descendantNodeJoinCondition
public DescendantNodeJoinCondition descendantNodeJoinCondition(String descendantSelectorName, String ancestorSelectorName) throws InvalidQueryException, RepositoryException Tests whether a first selector's node is a descendant of a second selector's node.- Specified by:
descendantNodeJoinConditionin interfaceQueryObjectModelFactory- Parameters:
descendantSelectorName- the name of the descendant selector; non-nullancestorSelectorName- the name of the ancestor selector; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
and
public And and(Constraint constraint1, Constraint constraint2) throws InvalidQueryException, RepositoryException Performs a logical conjunction of two other constraints.- Specified by:
andin interfaceQueryObjectModelFactory- Parameters:
constraint1- the first constraint; non-nullconstraint2- the second constraint; non-null- Returns:
- the
Andconstraint; non-null - Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
or
public Or or(Constraint constraint1, Constraint constraint2) throws InvalidQueryException, RepositoryException Performs a logical disjunction of two other constraints.- Specified by:
orin interfaceQueryObjectModelFactory- Parameters:
constraint1- the first constraint; non-nullconstraint2- the second constraint; non-null- Returns:
- the
Orconstraint; non-null - Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
not
Performs a logical negation of another constraint.- Specified by:
notin interfaceQueryObjectModelFactory- Parameters:
constraint- the constraint to be negated; non-null- Returns:
- the
Notconstraint; non-null - Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
comparison
public Comparison comparison(DynamicOperand left, String operatorName, StaticOperand right) throws InvalidQueryException, RepositoryException Filters node-tuples based on the outcome of a binary operation.- Specified by:
comparisonin interfaceQueryObjectModelFactory- Parameters:
left- the first operand; non-nulloperatorName- the operator; eitherQueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO,QueryObjectModelConstants.JCR_OPERATOR_NOT_EQUAL_TO,QueryObjectModelConstants.JCR_OPERATOR_LESS_THAN,QueryObjectModelConstants.JCR_OPERATOR_LESS_THAN_OR_EQUAL_TO,QueryObjectModelConstants.JCR_OPERATOR_GREATER_THAN,QueryObjectModelConstants.JCR_OPERATOR_GREATER_THAN_OR_EQUAL_TO, orQueryObjectModelConstants.JCR_OPERATOR_LIKE
right- the second operand; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
propertyExistence
public PropertyExistence propertyExistence(String propertyName) throws InvalidQueryException, RepositoryException Tests the existence of a property in the default selector.- Parameters:
propertyName- the property name; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
propertyExistence
public PropertyExistence propertyExistence(String selectorName, String propertyName) throws InvalidQueryException, RepositoryException Tests the existence of a property in the specified selector.- Specified by:
propertyExistencein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpropertyName- the property name; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
fullTextSearch
public FullTextSearch fullTextSearch(String propertyName, StaticOperand fullTextSearchExpression) throws InvalidQueryException, RepositoryException Performs a full-text search against the default selector.- Parameters:
propertyName- the property name, or null to search all full-text indexed properties of the node (or node subtree, in some implementations)fullTextSearchExpression- the full-text search expression; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
fullTextSearch
public FullTextSearch fullTextSearch(String selectorName, String propertyName, StaticOperand fullTextSearchExpression) throws InvalidQueryException, RepositoryException Performs a full-text search against the specified selector.- Specified by:
fullTextSearchin interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpropertyName- the property name, or null to search all full-text indexed properties of the node (or node subtree, in some implementations)fullTextSearchExpression- the full-text search expression; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
sameNode
Tests whether a node in the default selector is reachable by a specified absolute path.- Parameters:
path- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
sameNode
public SameNode sameNode(String selectorName, String path) throws InvalidQueryException, RepositoryException Tests whether a node in the specified selector is reachable by a specified absolute path.- Specified by:
sameNodein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpath- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
childNode
Tests whether a node in the default selector is a child of a node reachable by a specified absolute path.- Parameters:
path- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
childNode
public ChildNode childNode(String selectorName, String path) throws InvalidQueryException, RepositoryException Tests whether a node in the specified selector is a child of a node reachable by a specified absolute path.- Specified by:
childNodein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpath- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
descendantNode
Tests whether a node in the default selector is a descendant of a node reachable by a specified absolute path.- Parameters:
path- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
descendantNode
public DescendantNode descendantNode(String selectorName, String path) throws InvalidQueryException, RepositoryException Tests whether a node in the specified selector is a descendant of a node reachable by a specified absolute path.- Specified by:
descendantNodein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpath- an absolute path; non-null- Returns:
- the constraint; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
propertyValue
public PropertyValue propertyValue(String propertyName) throws InvalidQueryException, RepositoryException Evaluates to the value (or values, if multi-valued) of a property of the default selector.- Parameters:
propertyName- the property name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
propertyValue
public PropertyValue propertyValue(String selectorName, String propertyName) throws InvalidQueryException, RepositoryException Evaluates to the value (or values, if multi-valued) of a property in the specified selector.- Specified by:
propertyValuein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpropertyName- the property name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
length
Evaluates to the length (or lengths, if multi-valued) of a property.- Specified by:
lengthin interfaceQueryObjectModelFactory- Parameters:
propertyValue- the property value for which to compute the length; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
nodeName
Evaluates to aNAMEvalue equal to the prefix-qualified name of a node in the default selector.- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
nodeName
Evaluates to aNAMEvalue equal to the prefix-qualified name of a node in the specified selector.- Specified by:
nodeNamein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
nodeLocalName
Evaluates to aNAMEvalue equal to the local (unprefixed) name of a node in the default selector.- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
nodeLocalName
public NodeLocalName nodeLocalName(String selectorName) throws InvalidQueryException, RepositoryException Evaluates to aNAMEvalue equal to the local (unprefixed) name of a node in the specified selector.- Specified by:
nodeLocalNamein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
fullTextSearchScore
Evaluates to aDOUBLEvalue equal to the full-text search score of a node in the default selector.- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
fullTextSearchScore
public FullTextSearchScore fullTextSearchScore(String selectorName) throws InvalidQueryException, RepositoryException Evaluates to aDOUBLEvalue equal to the full-text search score of a node in the specified selector.- Specified by:
fullTextSearchScorein interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
lowerCase
public LowerCase lowerCase(DynamicOperand operand) throws InvalidQueryException, RepositoryException Evaluates to the lower-case string value (or values, if multi-valued) of an operand.- Specified by:
lowerCasein interfaceQueryObjectModelFactory- Parameters:
operand- the operand whose value is converted to a lower-case string; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
upperCase
public UpperCase upperCase(DynamicOperand operand) throws InvalidQueryException, RepositoryException Evaluates to the upper-case string value (or values, if multi-valued) of an operand.- Specified by:
upperCasein interfaceQueryObjectModelFactory- Parameters:
operand- the operand whose value is converted to a upper-case string; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
bindVariable
public BindVariableValue bindVariable(String bindVariableName) throws InvalidQueryException, RepositoryException Evaluates to the value of a bind variable.- Specified by:
bindVariablein interfaceQueryObjectModelFactory- Parameters:
bindVariableName- the bind variable name; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
literal
Evaluates to a literal value.- Specified by:
literalin interfaceQueryObjectModelFactory- Parameters:
value- a JCR value; non-null- Returns:
- the operand; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
ascending
Orders by the value of the specified operand, in ascending order.- Specified by:
ascendingin interfaceQueryObjectModelFactory- Parameters:
operand- the operand by which to order; non-null- Returns:
- the ordering
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
descending
public Ordering descending(DynamicOperand operand) throws InvalidQueryException, RepositoryException Orders by the value of the specified operand, in descending order.- Specified by:
descendingin interfaceQueryObjectModelFactory- Parameters:
operand- the operand by which to order; non-null- Returns:
- the ordering
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-
column
Identifies a property in the default selector to include in the tabular view of query results.The column name is the property name.
- Parameters:
propertyName- the property name, or null to include a column for each single-value non-residual property of the selector's node type- Returns:
- the column; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
column
public Column column(String propertyName, String columnName) throws InvalidQueryException, RepositoryException Identifies a property in the default selector to include in the tabular view of query results.- Parameters:
propertyName- the property name, or null to include a column for each single-value non-residual property of the selector's node typecolumnName- the column name; must be null ifpropertyNameis null- Returns:
- the column; non-null
- Throws:
InvalidQueryException- if the query has no default selector or is otherwise invalidRepositoryException- if the operation otherwise fails
-
column
public Column column(String selectorName, String propertyName, String columnName) throws InvalidQueryException, RepositoryException Identifies a property in the specified selector to include in the tabular view of query results.- Specified by:
columnin interfaceQueryObjectModelFactory- Parameters:
selectorName- the selector name; non-nullpropertyName- the property name, or null to include a column for each single-value non-residual property of the selector's node typecolumnName- the column name; if null, defaults topropertyName; must be null ifpropertyNameis null- Returns:
- the column; non-null
- Throws:
InvalidQueryException- if the query is invalidRepositoryException- if the operation otherwise fails
-