Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.modeshape.graph.query.parse
Class SqlQueryParser

    java.lang.Object
      org.modeshape.graph.query.parse.SqlQueryParser

All Implemented Interfaces:
  QueryParser

Direct Known Subclasses:
  JcrSql2QueryParser, JcrSqlQueryParser

    public class SqlQueryParser

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'

##### 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 */

Nested Class Summary
`static class` | `SqlQueryParser.SqlTokenizer` A `TokenStream.Tokenizer` implementation that parses words, quoted phrases, comments, and symbols.

Field Summary
`static String` | `LANGUAGE`

Constructor Summary
`SqlQueryParser()`

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)`
`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.graph.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)` Remove all leading and trailing single-quotes, double-quotes, or square brackets from the supplied text.
`protected String` | `removeBracketsAndQuotes(String text, boolean recursive)` Remove any 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)`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### LANGUAGE

    public static final String LANGUAGE

See Also:
  Constant Field Values

Constructor Detail

### SqlQueryParser

    public SqlQueryParser()

Method Detail

### getLanguage

    public String getLanguage()

  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
  See Also:
    `QueryParser.getLanguage()`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`
  See Also:
    `Object.toString()`

### equals

    public boolean equals(Object obj)

  Overrides:
    `equals` in class `Object`
  See Also:
    `Object.equals(java.lang.Object)`

### parseQuery

    public QueryCommand parseQuery(String query,
                                   TypeSystem typeSystem)

  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 null
    `typeSystem` - the type system used by the query; may not be null
  Returns:
    the query command
  See Also:
    `QueryParser.parseQuery(String, TypeSystem)`

### 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.graph.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)

  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 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)

  Remove any leading and trailing single-quotes, double-quotes, or square brackets from the supplied text.

  Parameters:
    `text` - the input text; may not be null
    `recursive` - 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 removed
  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)

### 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`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008-2011 JBoss, a division of Red Hat. All Rights Reserved.