org.modeshape.jcr.query.parse
Class BasicSqlQueryParser
java.lang.Object
org.modeshape.jcr.query.parse.BasicSqlQueryParser
- All Implemented Interfaces:
- QueryParser
- Direct Known Subclasses:
- JcrSql2QueryParser, JcrSqlQueryParser
public class BasicSqlQueryParser
- extends Object
- implements QueryParser
A QueryParser
implementation that parses a subset of SQL select and set queries.
This grammar is equivalent to the SQL grammar as defined by the JCR 2.0 specification, with some useful additions:
- "
... (UNION|INTERSECT|EXCEPT) [ALL] ...
" to combine and merge results from multiple queries
- "
SELECT DISTINCT ...
" to remove duplicates
- "
LIMIT count [OFFSET number]
" clauses to control the number of results returned as well as the number of rows
that should be skipped
- Support for additional join types, including "
FULL OUTER JOIN
" and "CROSS JOIN
"
- Additional dynamic operands "
DEPTH([<selectorName>])
" and "PATH([<selectorName>])
" that
enables placing constraints on the node depth and path, respectively, and which can be used in a manner similar to "
NAME([<selectorName>])
" and "LOCALNAME([<selectorName>])
. Note in each of these cases, the
selector name is optional if there is only one selector in the query.
- Additional dynamic operand "
REFERENCE([<selectorName>.]<propertyName>])
" that
enables placing constraints on one or all reference properties, and which can be used in a manner similar to "
PropertyValue([<selectorName>.]<propertyName>)
". Note in each of these cases, the
selector name is optional if there is only one selector in the query, and that the property name can be excluded
if the constraint should apply to all reference properties.
- Support for the IN clause and NOT IN clause to more easily supply a list of valid discrete static operands: "
<dynamicOperand> [NOT] IN (<staticOperand> {, <staticOperand>})
"
- Support for the BETWEEN clause: "
<dynamicOperand> [NOT] BETWEEN <lowerBoundStaticOperand> [EXCLUSIVE] AND
<upperBoundStaticOperand> [EXCLUSIVE]
"
- Support for arithmetic operations ('+', '-', '*', '/') between dynamic operands used in
WHERE
criteria and ORDER BY
clauses: "WHERE <dynamicOperand> + <dynamicOperand> ...
" or "ORDER BY (<dynamicOperand> + <dynamicOperand>) [ASC]
".
Note that standard operator precedence is used, but grouping by (potentially nested) parentheses is also supported.
SQL grammar
This section defines the complete grammar for the SQL dialect supported by this parser.
Queries
QueryCommand ::= Query | SetQuery
SetQuery ::= Query ('UNION'|'INTERSECT'|'EXCEPT') [ALL] Query
{ ('UNION'|'INTERSECT'|'EXCEPT') [ALL] Query }
Query ::= 'SELECT' ['DISINCT'] columns
'FROM' Source
['WHERE' Constraint]
['ORDER BY' orderings]
[Limit]
Sources
Source ::= Selector | Join
Selector ::= nodeTypeName ['AS' selectorName]
nodeTypeName ::= Name
Joins
Join ::= left [JoinType] 'JOIN' right 'ON' JoinCondition
// If JoinType is omitted INNER is assumed.
left ::= Source
right ::= Source
JoinType ::= Inner | LeftOuter | RightOuter | FullOuter | Cross
Inner ::= 'INNER' ['JOIN']
LeftOuter ::= 'LEFT JOIN' | 'OUTER JOIN' | 'LEFT OUTER JOIN'
RightOuter ::= 'RIGHT OUTER' ['JOIN']
RightOuter ::= 'FULL OUTER' ['JOIN']
RightOuter ::= 'CROSS' ['JOIN']
JoinCondition ::= EquiJoinCondition | SameNodeJoinCondition | ChildNodeJoinCondition | DescendantNodeJoinCondition
Equi-join conditions
EquiJoinCondition ::= selector1Name'.'property1Name '=' selector2Name'.'property2Name
selector1Name ::= selectorName
selector2Name ::= selectorName
property1Name ::= propertyName
property2Name ::= propertyName
Same-node join condition
SameNodeJoinCondition ::= 'ISSAMENODE(' selector1Name ',' selector2Name [',' selector2Path] ')'
selector2Path ::= Path
Child-node join condition
ChildNodeJoinCondition ::= 'ISCHILDNODE(' childSelectorName ',' parentSelectorName ')'
childSelectorName ::= selectorName
parentSelectorName ::= selectorName
Descendant-node join condition
DescendantNodeJoinCondition ::= 'ISDESCENDANTNODE(' descendantSelectorName ',' ancestorSelectorName ')'
descendantSelectorName ::= selectorName
ancestorSelectorName ::= selectorName
Constraints
Constraint ::= ConstraintItem | '(' ConstraintItem ')'
ConstraintItem ::= And | Or | Not | Comparison | Between | PropertyExistence | SetConstraint | FullTextSearch |
SameNode | ChildNode | DescendantNode
And constraint
And ::= constraint1 'AND' constraint2
constraint1 ::= Constraint
constraint2 ::= Constraint
Or constraint
Or ::= constraint1 'OR' constraint2
Not constraint
Not ::= 'NOT' Constraint
Comparison constraint
Comparison ::= DynamicOperand Operator StaticOperand
Operator ::= '=' | '!=' | '<' | '<=' | '>' | '>=' | 'LIKE' | 'NOT LIKE'
Between constraint
Between ::= DynamicOperand ['NOT'] 'BETWEEN' lowerBound ['EXCLUSIVE'] 'AND' upperBound ['EXCLUSIVE']
lowerBound ::= StaticOperand
upperBound ::= StaticOperand
Property existence constraint
PropertyExistence ::= selectorName'.'propertyName 'IS' ['NOT'] 'NULL' |
propertyName 'IS' ['NOT'] 'NULL' /* If only one selector exists in this query */
Set constraint
SetConstraint ::= selectorName'.'propertyName ['NOT'] 'IN' |
propertyName ['NOT'] 'IN' /* If only one selector exists in this query */
'(' firstStaticOperand {',' additionalStaticOperand } ')'
firstStaticOperand ::= StaticOperand
additionalStaticOperand ::= StaticOperand
Full-text search constraint
FullTextSearch ::= 'CONTAINS(' ([selectorName'.']propertyName | selectorName'.*')
',' ''' fullTextSearchExpression''' ')'
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
fullTextSearchExpression ::= /* a full-text search expression, see FullTextSearchParser
*/
Same-node constraint
SameNode ::= 'ISSAMENODE(' [selectorName ','] Path ')'
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
Child-node constraint
ChildNode ::= 'ISCHILDNODE(' [selectorName ','] Path ')'
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
Descendant-node constraint
DescendantNode ::= 'ISDESCENDANTNODE(' [selectorName ','] Path ')'
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
Paths and names
Name ::= '[' quotedName ']' | '[' simpleName ']' | simpleName
quotedName ::= /* A JCR Name (see the JCR specification) */
simpleName ::= /* A JCR Name that contains only SQL-legal characters (namely letters, digits, and underscore) */
Path ::= '[' quotedPath ']' | '[' simplePath ']' | simplePath
quotedPath ::= /* A JCR Path that contains non-SQL-legal characters */
simplePath ::= /* A JCR Path (rather Name) that contains only SQL-legal characters (namely letters, digits, and underscore) */
Static operands
StaticOperand ::= Literal | BindVariableValue
Literal
Literal ::= CastLiteral | UncastLiteral
CastLiteral ::= 'CAST(' UncastLiteral ' AS ' PropertyType ')'
PropertyType ::= 'STRING' | 'BINARY' | 'DATE' | 'LONG' | 'DOUBLE' | 'DECIMAL' | 'BOOLEAN' | 'NAME' | 'PATH' |
'REFERENCE' | 'WEAKREFERENCE' | 'URI'
UncastLiteral ::= UnquotedLiteral | ''' UnquotedLiteral ''' | '"' UnquotedLiteral '"'
UnquotedLiteral ::= /* String form of a JCR Value, as defined in the JCR specification */
Bind variables
BindVariableValue ::= '$'bindVariableName
bindVariableName ::= /* A string that conforms to the JCR Name syntax, though the prefix does not need to be
a registered namespace prefix. */
Dynamic operands
DynamicOperand ::= PropertyValue | ReferenceValue | Length | NodeName | NodeLocalName | NodePath | NodeDepth |
FullTextSearchScore | LowerCase | UpperCase | Arithmetic |
'(' DynamicOperand ')'
Property value
PropertyValue ::= [selectorName'.'] propertyName
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
Reference value
ReferenceValue ::= 'REFERENCE(' selectorName '.' propertyName ')' |
'REFERENCE(' selectorName ')' |
'REFERENCE()' |
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional. Also, the property name may be excluded
if the constraint should apply to any reference property. */
Property length
Length ::= 'LENGTH(' PropertyValue ')'
Node name
NodeName ::= 'NAME(' [selectorName] ')'
/* If only one selector exists in this query, explicit specification of the selectorName
is optional */
Node local name
NodeLocalName ::= 'LOCALNAME(' [selectorName] ')'
/* If only one selector exists in this query, explicit specification of the selectorName
is optional */
Node path
NodePath ::= 'PATH(' [selectorName] ')'
/* If only one selector exists in this query, explicit specification of the selectorName
is optional */
Node depth
NodeDepth ::= 'DEPTH(' [selectorName] ')'
/* If only one selector exists in this query, explicit specification of the selectorName
is optional */
Full-text search score
FullTextSearchScore ::= 'SCORE(' [selectorName] ')'
/* If only one selector exists in this query, explicit specification of the selectorName
is optional */
Lowercase
LowerCase ::= 'LOWER(' DynamicOperand ')'
Uppercase
UpperCase ::= 'UPPER(' DynamicOperand ')'
Arithmetic
Arithmetic ::= DynamicOperand ('+'|'-'|'*'|'/') DynamicOperand
Ordering
orderings ::= Ordering {',' Ordering}
Ordering ::= DynamicOperand [Order]
Order ::= 'ASC' | 'DESC'
Columns
columns ::= (Column ',' {Column}) | '*'
Column ::= ([selectorName'.']propertyName ['AS' columnName]) | (selectorName'.*')
/* If only one selector exists in this query, explicit specification of the selectorName
preceding the propertyName is optional */
selectorName ::= Name
propertyName ::= Name
columnName ::= Name
Limit
Limit ::= 'LIMIT' count [ 'OFFSET' offset ]
count ::= /* Positive integer value */
offset ::= /* Non-negative integer value */
Method Summary |
protected And |
and(Constraint constraint1,
Constraint constraint2)
|
protected ArithmeticOperand |
arithmeticOperand(DynamicOperand leftOperand,
ArithmeticOperator operator,
DynamicOperand rightOperand)
|
protected Between |
between(DynamicOperand operand,
StaticOperand lowerBound,
StaticOperand upperBound,
boolean lowerInclusive,
boolean upperInclusive)
|
protected BindVariableName |
bindVariableName(String variableName)
|
protected ChildNode |
childNode(SelectorName name,
String path)
|
protected ChildNodeJoinCondition |
childNodeJoinCondition(SelectorName parent,
SelectorName child)
|
protected Column |
column(SelectorName selectorName,
String propertyName,
String columnName)
|
protected Comparison |
comparison(DynamicOperand left,
Operator operator,
StaticOperand right)
|
protected DescendantNode |
descendantNode(SelectorName name,
String path)
|
protected DescendantNodeJoinCondition |
descendantNodeJoinCondition(SelectorName ancestor,
SelectorName descendant)
|
boolean |
equals(Object obj)
|
protected EquiJoinCondition |
equiJoinCondition(SelectorName selector1,
String property1,
SelectorName selector2,
String property2)
|
protected FullTextSearch |
fullTextSearch(SelectorName name,
String propertyName,
String expression,
FullTextSearch.Term term)
|
protected FullTextSearchScore |
fullTextSearchScore(SelectorName selector)
|
String |
getLanguage()
Get the name of the language that this parser is able to understand. |
protected Join |
join(Source left,
JoinType joinType,
Source right,
JoinCondition joinCondition)
|
protected Length |
length(PropertyValue propertyValue)
|
protected Limit |
limit(int rowCount,
int offset)
|
protected Literal |
literal(TypeSystem typeSystem,
Object value)
|
protected LowerCase |
lowerCase(DynamicOperand operand)
|
protected NodeDepth |
nodeDepth(SelectorName selector)
|
protected NodeLocalName |
nodeLocalName(SelectorName selector)
|
protected NodeName |
nodeName(SelectorName selector)
|
protected NodePath |
nodePath(SelectorName selector)
|
protected Not |
not(Constraint constraint)
|
protected Or |
or(Constraint constraint1,
Constraint constraint2)
|
protected Ordering |
ordering(DynamicOperand operand,
Order order)
|
protected Operator |
parseComparisonOperator(TokenStream tokens)
|
protected Constraint |
parseConstraint(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected DynamicOperand |
parseDynamicOperand(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected Source |
parseFrom(TokenStream tokens,
TypeSystem typeSystem)
|
protected FullTextSearch.Term |
parseFullTextSearchExpression(String expression,
Position startOfExpression)
|
protected List<StaticOperand> |
parseInClause(TokenStream tokens,
TypeSystem typeSystem)
|
protected JoinCondition |
parseJoinCondition(TokenStream tokens,
TypeSystem typeSystem)
|
protected Limit |
parseLimit(TokenStream tokens)
|
protected Literal |
parseLiteral(TokenStream tokens,
TypeSystem typeSystem)
|
protected Object |
parseLiteralValue(TokenStream tokens,
TypeSystem typeSystem)
|
protected String |
parseName(String token,
TypeSystem typeSystem,
Position position)
|
protected String |
parseName(TokenStream tokens,
TypeSystem typeSystem)
|
protected NamedSelector |
parseNamedSelector(TokenStream tokens,
TypeSystem typeSystem)
|
protected List<Ordering> |
parseOrderBy(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected Ordering |
parseOrdering(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected String |
parsePath(TokenStream tokens,
TypeSystem typeSystem)
|
protected Constraint |
parsePropertyExistance(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected PropertyValue |
parsePropertyValue(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
QueryCommand |
parseQuery(String query,
TypeSystem typeSystem)
Parse the supplied query from a string representation into a QueryCommand . |
protected Query |
parseQuery(TokenStream tokens,
TypeSystem typeSystem)
|
protected QueryCommand |
parseQueryCommand(TokenStream tokens,
TypeSystem typeSystem)
|
protected ReferenceValue |
parseReferenceValue(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected List<org.modeshape.jcr.query.parse.ColumnExpression> |
parseSelect(TokenStream tokens,
AtomicBoolean isDistinct,
TypeSystem typeSystem)
|
protected SelectorName |
parseSelectorName(TokenStream tokens,
TypeSystem typeSystem)
|
protected SetQuery |
parseSetQuery(TokenStream tokens,
QueryCommand leftHandSide,
TypeSystem typeSystem)
|
protected StaticOperand |
parseStaticOperand(TokenStream tokens,
TypeSystem typeSystem)
|
protected Constraint |
parseWhere(TokenStream tokens,
TypeSystem typeSystem,
Source source)
|
protected PropertyExistence |
propertyExistence(SelectorName selector,
String propertyName)
|
protected PropertyValue |
propertyValue(SelectorName selector,
String propertyName)
|
protected Query |
query(Source source,
Constraint constraint,
List<? extends Ordering> orderings,
List<? extends Column> columns,
Limit limit,
boolean distinct)
|
protected ReferenceValue |
referenceValue(SelectorName selector)
|
protected ReferenceValue |
referenceValue(SelectorName selector,
String propertyName)
|
protected String |
removeBracketsAndQuotes(String text,
boolean recursive,
Position position)
Remove any leading and trailing single-quotes, double-quotes, or square brackets from the supplied text. |
protected String |
removeBracketsAndQuotes(String text,
Position position)
Remove all leading and trailing single-quotes, double-quotes, or square brackets from the supplied text. |
protected SameNode |
sameNode(SelectorName name,
String path)
|
protected SameNodeJoinCondition |
sameNodeJoinCondition(SelectorName selector1,
SelectorName selector2)
|
protected SameNodeJoinCondition |
sameNodeJoinCondition(SelectorName selector1,
SelectorName selector2,
String path)
|
protected SetCriteria |
setCriteria(DynamicOperand operand,
Collection<? extends StaticOperand> values)
|
protected SetQuery |
setQuery(QueryCommand leftQuery,
SetQuery.Operation operation,
QueryCommand rightQuery,
boolean all)
|
protected Subquery |
subquery(QueryCommand queryCommand)
|
String |
toString()
|
protected UpperCase |
upperCase(DynamicOperand operand)
|
LANGUAGE
public static final String LANGUAGE
- See Also:
- Constant Field Values
BasicSqlQueryParser
public BasicSqlQueryParser()
getLanguage
public String getLanguage()
- Description copied from interface:
QueryParser
- Get the name of the language that this parser is able to understand.
- Specified by:
getLanguage
in interface QueryParser
- Returns:
- the language name; never null
toString
public String toString()
- Overrides:
toString
in class Object
equals
public boolean equals(Object obj)
- Overrides:
equals
in class Object
parseQuery
public QueryCommand parseQuery(String query,
TypeSystem typeSystem)
- Description copied from interface:
QueryParser
- Parse the supplied query from a string representation into a
QueryCommand
.
- Specified by:
parseQuery
in interface QueryParser
- Parameters:
query
- the query in string form; may not be nulltypeSystem
- the type system used by the query; may not be null
- Returns:
- the query command
parseQueryCommand
protected QueryCommand parseQueryCommand(TokenStream tokens,
TypeSystem typeSystem)
parseQuery
protected Query parseQuery(TokenStream tokens,
TypeSystem typeSystem)
parseSetQuery
protected SetQuery parseSetQuery(TokenStream tokens,
QueryCommand leftHandSide,
TypeSystem typeSystem)
parseSelect
protected List<org.modeshape.jcr.query.parse.ColumnExpression> parseSelect(TokenStream tokens,
AtomicBoolean isDistinct,
TypeSystem typeSystem)
parseFrom
protected Source parseFrom(TokenStream tokens,
TypeSystem typeSystem)
parseJoinCondition
protected JoinCondition parseJoinCondition(TokenStream tokens,
TypeSystem typeSystem)
parseWhere
protected Constraint parseWhere(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseConstraint
protected Constraint parseConstraint(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseInClause
protected List<StaticOperand> parseInClause(TokenStream tokens,
TypeSystem typeSystem)
parseFullTextSearchExpression
protected FullTextSearch.Term parseFullTextSearchExpression(String expression,
Position startOfExpression)
parseComparisonOperator
protected Operator parseComparisonOperator(TokenStream tokens)
parseOrderBy
protected List<Ordering> parseOrderBy(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseOrdering
protected Ordering parseOrdering(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parsePropertyExistance
protected Constraint parsePropertyExistance(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseStaticOperand
protected StaticOperand parseStaticOperand(TokenStream tokens,
TypeSystem typeSystem)
subquery
protected Subquery subquery(QueryCommand queryCommand)
parseLiteral
protected Literal parseLiteral(TokenStream tokens,
TypeSystem typeSystem)
parseLiteralValue
protected Object parseLiteralValue(TokenStream tokens,
TypeSystem typeSystem)
parseDynamicOperand
protected DynamicOperand parseDynamicOperand(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parsePropertyValue
protected PropertyValue parsePropertyValue(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseReferenceValue
protected ReferenceValue parseReferenceValue(TokenStream tokens,
TypeSystem typeSystem,
Source source)
parseLimit
protected Limit parseLimit(TokenStream tokens)
removeBracketsAndQuotes
protected String removeBracketsAndQuotes(String text,
Position position)
- Remove all leading and trailing single-quotes, double-quotes, or square brackets from the supplied text. If multiple,
properly-paired quotes or brackets are found, they will all be removed.
- Parameters:
text
- the input text; may not be nullposition
- the position of the text; may not be null
- Returns:
- the text without leading and trailing brackets and quotes, or
text
if there were no square brackets or
quotes
removeBracketsAndQuotes
protected String removeBracketsAndQuotes(String text,
boolean recursive,
Position position)
- Remove any leading and trailing single-quotes, double-quotes, or square brackets from the supplied text.
- Parameters:
text
- the input text; may not be nullrecursive
- true if more than one pair of quotes, double-quotes, or square brackets should be removed, or false if
just the first pair should be removedposition
- the position of the text; may not be null
- Returns:
- the text without leading and trailing brackets and quotes, or
text
if there were no square brackets or
quotes
parseNamedSelector
protected NamedSelector parseNamedSelector(TokenStream tokens,
TypeSystem typeSystem)
parseSelectorName
protected SelectorName parseSelectorName(TokenStream tokens,
TypeSystem typeSystem)
parsePath
protected String parsePath(TokenStream tokens,
TypeSystem typeSystem)
parseName
protected String parseName(TokenStream tokens,
TypeSystem typeSystem)
parseName
protected String parseName(String token,
TypeSystem typeSystem,
Position position)
query
protected Query query(Source source,
Constraint constraint,
List<? extends Ordering> orderings,
List<? extends Column> columns,
Limit limit,
boolean distinct)
setQuery
protected SetQuery setQuery(QueryCommand leftQuery,
SetQuery.Operation operation,
QueryCommand rightQuery,
boolean all)
length
protected Length length(PropertyValue propertyValue)
lowerCase
protected LowerCase lowerCase(DynamicOperand operand)
upperCase
protected UpperCase upperCase(DynamicOperand operand)
nodeName
protected NodeName nodeName(SelectorName selector)
nodeLocalName
protected NodeLocalName nodeLocalName(SelectorName selector)
nodeDepth
protected NodeDepth nodeDepth(SelectorName selector)
nodePath
protected NodePath nodePath(SelectorName selector)
equiJoinCondition
protected EquiJoinCondition equiJoinCondition(SelectorName selector1,
String property1,
SelectorName selector2,
String property2)
descendantNodeJoinCondition
protected DescendantNodeJoinCondition descendantNodeJoinCondition(SelectorName ancestor,
SelectorName descendant)
childNodeJoinCondition
protected ChildNodeJoinCondition childNodeJoinCondition(SelectorName parent,
SelectorName child)
sameNodeJoinCondition
protected SameNodeJoinCondition sameNodeJoinCondition(SelectorName selector1,
SelectorName selector2)
sameNodeJoinCondition
protected SameNodeJoinCondition sameNodeJoinCondition(SelectorName selector1,
SelectorName selector2,
String path)
limit
protected Limit limit(int rowCount,
int offset)
column
protected Column column(SelectorName selectorName,
String propertyName,
String columnName)
join
protected Join join(Source left,
JoinType joinType,
Source right,
JoinCondition joinCondition)
not
protected Not not(Constraint constraint)
and
protected And and(Constraint constraint1,
Constraint constraint2)
or
protected Or or(Constraint constraint1,
Constraint constraint2)
between
protected Between between(DynamicOperand operand,
StaticOperand lowerBound,
StaticOperand upperBound,
boolean lowerInclusive,
boolean upperInclusive)
setCriteria
protected SetCriteria setCriteria(DynamicOperand operand,
Collection<? extends StaticOperand> values)
fullTextSearch
protected FullTextSearch fullTextSearch(SelectorName name,
String propertyName,
String expression,
FullTextSearch.Term term)
sameNode
protected SameNode sameNode(SelectorName name,
String path)
childNode
protected ChildNode childNode(SelectorName name,
String path)
descendantNode
protected DescendantNode descendantNode(SelectorName name,
String path)
comparison
protected Comparison comparison(DynamicOperand left,
Operator operator,
StaticOperand right)
ordering
protected Ordering ordering(DynamicOperand operand,
Order order)
propertyExistence
protected PropertyExistence propertyExistence(SelectorName selector,
String propertyName)
fullTextSearchScore
protected FullTextSearchScore fullTextSearchScore(SelectorName selector)
arithmeticOperand
protected ArithmeticOperand arithmeticOperand(DynamicOperand leftOperand,
ArithmeticOperator operator,
DynamicOperand rightOperand)
propertyValue
protected PropertyValue propertyValue(SelectorName selector,
String propertyName)
referenceValue
protected ReferenceValue referenceValue(SelectorName selector)
referenceValue
protected ReferenceValue referenceValue(SelectorName selector,
String propertyName)
bindVariableName
protected BindVariableName bindVariableName(String variableName)
literal
protected Literal literal(TypeSystem typeSystem,
Object value)
throws ValueFormatException
- Throws:
ValueFormatException
Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.