public interface Expression
JPQL grammar
used.
Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
JPQLGrammar
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ABS
The constant for 'ABS'.
|
static java.lang.String |
ALL
The constant for 'ALL'.
|
static java.lang.String |
AND
The constant for 'AND'.
|
static java.lang.String |
ANY
The constant for 'ANY'.
|
static java.lang.String |
AS
The constant for 'AS'.
|
static java.lang.String |
AS_OF
The constant for 'AS OF'.
|
static java.lang.String |
ASC
The constant for 'ASC'.
|
static java.lang.String |
AVG
The constant for 'AVG'.
|
static java.lang.String |
BETWEEN
The constant for 'BETWEEN'.
|
static java.lang.String |
BIT_LENGTH
The constant for 'BIT_LENGTH', which is an unused keyword.
|
static java.lang.String |
BOTH
The constant for 'BOTH'.
|
static java.lang.String |
CASE
The constant for the identifier 'CASE'.
|
static java.lang.String |
CAST
The constant for the identifier 'CAST'.
|
static java.lang.String |
CHAR_LENGTH
The constant for 'CHAR_LENGTH', which is an unused keyword.
|
static java.lang.String |
CHARACTER_LENGTH
The constant for 'CHARACTER_LENGTH', which is an unused keyword.
|
static java.lang.String |
CLASS
The constant for 'CLASS', which is an unused keyword.
|
static java.lang.String |
COALESCE
The constant for 'COALESCE'.
|
static java.lang.String |
COLUMN
The constant 'COLUMN', which is an EclipseLink specific identifier that was added in version 2.4.
|
static java.lang.String |
CONCAT
The constant for 'CONCAT'.
|
static java.lang.String |
CONNECT_BY
The constant for 'CONNECT BY'.
|
static java.lang.String |
COUNT
The constant for 'COUNT'.
|
static java.lang.String |
CURRENT_DATE
The constant for 'CURRENT_DATE'.
|
static java.lang.String |
CURRENT_TIME
The constant for 'CURRENT_DATE'.
|
static java.lang.String |
CURRENT_TIMESTAMP
The constant for 'CURRENT_TIMESTAMP'.
|
static java.lang.String |
DELETE
The constant for 'DELETE'.
|
static java.lang.String |
DELETE_FROM
The constant for 'DELETE FROM'.
|
static java.lang.String |
DESC
The constant for 'DESC'.
|
static java.lang.String |
DIFFERENT
The constant for '<>'.
|
static java.lang.String |
DISTINCT
The constant for 'DISTINCT'.
|
static java.lang.String |
DIVISION
The constant for the division sign '/'.
|
static java.lang.String |
ELSE
The constant for the identifier 'ELSE'.
|
static java.lang.String |
EMPTY
The constant for 'EMPTY'.
|
static java.lang.String |
END
The constant for the identifier 'END'.
|
static java.lang.String |
ENTRY
The constant for 'ENTRY'.
|
static java.lang.String |
EQUAL
The constant for '='.
|
static java.lang.String |
ESCAPE
The constant for 'ESCAPE'.
|
static java.lang.String |
EXCEPT
The constant for 'EXCEPT'.
|
static java.lang.String |
EXISTS
The constant for 'EXISTS'.
|
static java.lang.String |
EXTRACT
The constant for 'EXTRACT'.
|
static java.lang.String |
FALSE
The constant for 'FALSE'.
|
static java.lang.String |
FETCH
A constant for 'FETCH'.
|
static java.lang.String |
FIRST
The constant for 'FIRST'.
|
static java.lang.String |
FROM
The constant for 'FROM'.
|
static java.lang.String |
FUNC
The constant 'FUNC', which is an EclipseLink specific identifier that was added in version 2.1.
|
static java.lang.String |
FUNCTION
The constant 'FUNCTION', part of JPA 2.1.
|
static java.lang.String |
GREATER_THAN
The constant for '>'.
|
static java.lang.String |
GREATER_THAN_OR_EQUAL
The constant for '>='.
|
static java.lang.String |
GROUP_BY
The constant for 'GROUP BY'.
|
static java.lang.String |
HAVING
The constant for 'HAVING'.
|
static java.lang.String |
IN
The constant for 'IN'.
|
static java.lang.String |
INDEX
The constant for 'INDEX'.
|
static java.lang.String |
INNER
The constant for 'INNER'.
|
static java.lang.String |
INNER_JOIN
The constant for 'INNER JOIN'.
|
static java.lang.String |
INNER_JOIN_FETCH
The constant for 'INNER JOIN FETCH'.
|
static java.lang.String |
INTERSECT
The constant for 'INTERSECT'.
|
static java.lang.String |
IS
The constant for 'IS'.
|
static java.lang.String |
IS_EMPTY
The constant for 'IS EMPTY'.
|
static java.lang.String |
IS_NOT_EMPTY
The constant for 'IS NOT EMPTY'.
|
static java.lang.String |
IS_NOT_NULL
The constant for 'IS NOT NULL'.
|
static java.lang.String |
IS_NULL
The constant for 'IS NULL'.
|
static java.lang.String |
JOIN
The constant for 'JOIN'.
|
static java.lang.String |
JOIN_FETCH
The constant for 'JOIN FETCH'.
|
static java.lang.String |
KEY
The constant for 'KEY'.
|
static java.lang.String |
LAST
The constant for 'LAST'.
|
static java.lang.String |
LEADING
The constant for 'LEADING'.
|
static java.lang.String |
LEFT
The constant for 'LEFT'.
|
static java.lang.String |
LEFT_JOIN
The constant for 'LEFT JOIN'.
|
static java.lang.String |
LEFT_JOIN_FETCH
The constant for 'LEFT JOIN FETCH'.
|
static java.lang.String |
LEFT_OUTER_JOIN
The constant for 'LEFT OUTER JOIN'.
|
static java.lang.String |
LEFT_OUTER_JOIN_FETCH
The constant for 'LEFT OUTER JOIN FETCH'.
|
static java.lang.String |
LENGTH
The constant for 'LENGTH'.
|
static java.lang.String |
LIKE
The constant for 'LIKE'.
|
static java.lang.String |
LOCATE
The constant for 'LOCATE'.
|
static java.lang.String |
LOWER
The constant for 'LOWER'.
|
static java.lang.String |
LOWER_THAN
The constant for '<'.
|
static java.lang.String |
LOWER_THAN_OR_EQUAL
The constant for '<='.
|
static java.lang.String |
MAX
The constant for 'MAX'.
|
static java.lang.String |
MEMBER
The constant for 'MEMBER'.
|
static java.lang.String |
MEMBER_OF
The constant for 'MEMBER OF'.
|
static java.lang.String |
MIN
The constant for 'MIN'.
|
static java.lang.String |
MINUS
The constant for the minus sign '-'.
|
static java.lang.String |
MOD
The constant for 'MOD'.
|
static java.lang.String |
MULTIPLICATION
The constant for multiplication sign '*'.
|
static java.lang.String |
NAMED_PARAMETER
The constant for ':'.
|
static java.lang.String |
NEW
The constant for 'NEW'.
|
static java.lang.String |
NOT
The constant for 'NOT'.
|
static java.lang.String |
NOT_BETWEEN
The constant for 'NOT BETWEEN'.
|
static java.lang.String |
NOT_EQUAL
The constant for '!
|
static java.lang.String |
NOT_EXISTS
The constant for 'NOT EXISTS'.
|
static java.lang.String |
NOT_IN
The constant for 'NOT IN'.
|
static java.lang.String |
NOT_LIKE
The constant for 'NOT LIKE'.
|
static java.lang.String |
NOT_MEMBER
The constant for 'NOT MEMBER'.
|
static java.lang.String |
NOT_MEMBER_OF
The constant for 'NOT MEMBER OF'.
|
static java.lang.String |
NULL
The constant for 'NULL'.
|
static java.lang.String |
NULLIF
The constant for 'NULLIF'.
|
static java.lang.String |
NULLS
The constant for 'NULLS'.
|
static java.lang.String |
NULLS_FIRST
The constant for 'NULLS FIRST'.
|
static java.lang.String |
NULLS_LAST
The constant for 'NULLS LAST'.
|
static java.lang.String |
OBJECT
The constant for 'OBJECT'.
|
static java.lang.String |
OF
The constant for 'OF'.
|
static java.lang.String |
ON
The constant for 'ON', which is an EclipseLink specific identifier that was added in version 2.4.
|
static java.lang.String |
OPERATOR
The constant 'OPERATOR', which is an EclipseLink specific identifier that was added in version 2.4.
|
static java.lang.String |
OR
The constant for 'OR'.
|
static java.lang.String |
ORDER_BY
The constant for 'ORDER BY'.
|
static java.lang.String |
ORDER_SIBLINGS_BY
The constant for 'ORDER SIBLINGS BY'.
|
static java.lang.String |
OUTER
The constant for 'OUTER'.
|
static java.lang.String |
PLUS
The constant for for the plus sign '+'.
|
static java.lang.String |
POSITION
The constant for 'POSITION', which is an unused keyword.
|
static java.lang.String |
POSITIONAL_PARAMETER
The constant for '?'.
|
static java.lang.String |
QUOTE
The constant for single quote.
|
static java.lang.String |
REGEXP
The constant for 'REGEXP'.
|
static java.lang.String |
SCN
The constant for 'SCN'.
|
static java.lang.String |
SELECT
The constant for 'SELECT'.
|
static java.lang.String |
SET
The constant for 'SET'.
|
static java.lang.String |
SIZE
The constant for 'SIZE'.
|
static java.lang.String |
SOME
The constant for 'SOME'.
|
static java.lang.String |
SQL
The constant 'SQL', which is an EclipseLink specific identifier that was added in version 2.4.
|
static java.lang.String |
SQRT
The constant for 'SQRT'.
|
static java.lang.String |
START_WITH
The constant for 'WHERE'.
|
static java.lang.String |
SUBSTRING
The constant for 'SUBSTRING'.
|
static java.lang.String |
SUM
The constant for 'SUM'.
|
static java.lang.String |
TABLE
The constant for 'TABLE'.
|
static java.lang.String |
THEN
The constant for 'THEN'.
|
static java.lang.String |
TIMESTAMP
The constant for 'TIMESTAMP'.
|
static java.lang.String |
TRAILING
The constant for 'TRAILING'.
|
static java.lang.String |
TREAT
The constant for 'TREAT', which is an EclipseLink specific identifier that was added in version 2.1.
|
static java.lang.String |
TRIM
The constant for 'TRIM'.
|
static java.lang.String |
TRUE
The constant for 'TRUE'.
|
static java.lang.String |
TYPE
The constant for 'TYPE'.
|
static java.lang.String |
UNION
The constant for 'UNION'.
|
static java.lang.String |
UNKNOWN
The constant for 'UNKNOWN', which is an unused keyword.
|
static java.lang.String |
UPDATE
The constant for 'UPDATE'.
|
static java.lang.String |
UPPER
The constant for 'UPPER'.
|
static java.lang.String |
VALUE
The constant for 'VALUE'.
|
static java.lang.String |
WHEN
The constant for the identifier 'WHEN'.
|
static java.lang.String |
WHERE
The constant for 'WHERE'.
|
Modifier and Type | Method and Description |
---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor . |
void |
acceptChildren(ExpressionVisitor visitor)
Visits the children of this
Expression . |
ListIterable<Expression> |
children()
Returns the children of this
Expression . |
JPQLQueryBNF |
findQueryBNF(Expression expression)
Retrieves the
JPQLQueryBNF that represents the fragment of this Expression
that was used when parsing the given Expression . |
JPQLGrammar |
getGrammar()
Returns the
JPQLGrammar that defines how the JPQL query was parsed. |
int |
getLength()
Returns the length of the string representation of this
Expression , which is the
length of the text generated by toActualText() . |
int |
getOffset()
Returns the position of this
Expression within its parent hierarchy. |
Expression |
getParent()
Returns the parent of this
Expression . |
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
JPQLExpression |
getRoot()
Retrieves the root node of the parsed tree hierarchy.
|
boolean |
isAncestor(Expression expression)
Determines whether this
Expression is a parent of the given Expression . |
ListIterable<Expression> |
orderedChildren()
Returns the list representing this
Expression and its children. |
void |
populatePosition(QueryPosition queryPosition,
int position)
Retrieves the
Expression located at the given position using the actual query,
which may have extra whitespace. |
java.lang.String |
toActualText()
Generates a string representation of this
Expression , which needs to include any
characters that are considered virtual, i.e. that was parsed when the query is incomplete and
is needed for functionality like content assist. |
java.lang.String |
toParsedText()
Returns a string representation of this
Expression and its children. |
static final java.lang.String ABS
static final java.lang.String ALL
static final java.lang.String AND
static final java.lang.String ANY
static final java.lang.String AS
static final java.lang.String AS_OF
static final java.lang.String ASC
static final java.lang.String AVG
static final java.lang.String BETWEEN
static final java.lang.String BIT_LENGTH
static final java.lang.String BOTH
static final java.lang.String CASE
static final java.lang.String CAST
static final java.lang.String CHAR_LENGTH
static final java.lang.String CHARACTER_LENGTH
static final java.lang.String CLASS
static final java.lang.String COALESCE
static final java.lang.String COLUMN
static final java.lang.String CONCAT
static final java.lang.String CONNECT_BY
static final java.lang.String COUNT
static final java.lang.String CURRENT_DATE
static final java.lang.String CURRENT_TIME
static final java.lang.String CURRENT_TIMESTAMP
static final java.lang.String DELETE
static final java.lang.String DELETE_FROM
static final java.lang.String DESC
static final java.lang.String DIFFERENT
static final java.lang.String DISTINCT
static final java.lang.String DIVISION
static final java.lang.String ELSE
static final java.lang.String EMPTY
static final java.lang.String END
static final java.lang.String ENTRY
static final java.lang.String EQUAL
static final java.lang.String ESCAPE
static final java.lang.String EXCEPT
static final java.lang.String EXISTS
static final java.lang.String EXTRACT
static final java.lang.String FALSE
static final java.lang.String FETCH
static final java.lang.String FIRST
static final java.lang.String FROM
static final java.lang.String FUNC
static final java.lang.String FUNCTION
static final java.lang.String GREATER_THAN
static final java.lang.String GREATER_THAN_OR_EQUAL
static final java.lang.String GROUP_BY
static final java.lang.String HAVING
static final java.lang.String IN
static final java.lang.String INDEX
static final java.lang.String INNER
static final java.lang.String INNER_JOIN
static final java.lang.String INNER_JOIN_FETCH
static final java.lang.String INTERSECT
static final java.lang.String IS
static final java.lang.String IS_EMPTY
static final java.lang.String IS_NOT_EMPTY
static final java.lang.String IS_NOT_NULL
static final java.lang.String IS_NULL
static final java.lang.String JOIN
static final java.lang.String JOIN_FETCH
static final java.lang.String KEY
static final java.lang.String LAST
static final java.lang.String LEADING
static final java.lang.String LEFT
static final java.lang.String LEFT_JOIN
static final java.lang.String LEFT_JOIN_FETCH
static final java.lang.String LEFT_OUTER_JOIN
static final java.lang.String LEFT_OUTER_JOIN_FETCH
static final java.lang.String LENGTH
static final java.lang.String LIKE
static final java.lang.String LOCATE
static final java.lang.String LOWER
static final java.lang.String LOWER_THAN
static final java.lang.String LOWER_THAN_OR_EQUAL
static final java.lang.String MAX
static final java.lang.String MEMBER
static final java.lang.String MEMBER_OF
static final java.lang.String MIN
static final java.lang.String MINUS
static final java.lang.String MOD
static final java.lang.String MULTIPLICATION
static final java.lang.String NAMED_PARAMETER
static final java.lang.String NEW
static final java.lang.String NOT
static final java.lang.String NOT_BETWEEN
static final java.lang.String NOT_EQUAL
static final java.lang.String NOT_EXISTS
static final java.lang.String NOT_IN
static final java.lang.String NOT_LIKE
static final java.lang.String NOT_MEMBER
static final java.lang.String NOT_MEMBER_OF
static final java.lang.String NULL
static final java.lang.String NULLIF
static final java.lang.String NULLS
static final java.lang.String NULLS_FIRST
static final java.lang.String NULLS_LAST
static final java.lang.String OBJECT
static final java.lang.String OF
static final java.lang.String ON
static final java.lang.String OPERATOR
static final java.lang.String OR
static final java.lang.String ORDER_BY
static final java.lang.String ORDER_SIBLINGS_BY
static final java.lang.String OUTER
static final java.lang.String PLUS
static final java.lang.String POSITION
static final java.lang.String POSITIONAL_PARAMETER
static final java.lang.String QUOTE
static final java.lang.String REGEXP
static final java.lang.String SCN
static final java.lang.String SELECT
static final java.lang.String SET
static final java.lang.String SIZE
static final java.lang.String SOME
static final java.lang.String SQL
static final java.lang.String SQRT
static final java.lang.String START_WITH
static final java.lang.String SUBSTRING
static final java.lang.String SUM
static final java.lang.String TABLE
static final java.lang.String THEN
static final java.lang.String TIMESTAMP
static final java.lang.String TRAILING
static final java.lang.String TREAT
static final java.lang.String TRIM
static final java.lang.String TRUE
static final java.lang.String TYPE
static final java.lang.String UNION
static final java.lang.String UNKNOWN
static final java.lang.String UPDATE
static final java.lang.String UPPER
static final java.lang.String VALUE
static final java.lang.String WHEN
static final java.lang.String WHERE
void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The ExpressionVisitor
to visit this objectvoid acceptChildren(ExpressionVisitor visitor)
Expression
. This method can be used to optimize traversing
the children since a new list is not created every time children()
is called.
This does not traverse the Expression
sub-hierarchy, use a subclass of
AbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.
visitor
- The visitor
to visit the children of this object.ListIterable<Expression> children()
Expression
.Expression
or an empty ListIterable
JPQLQueryBNF findQueryBNF(Expression expression)
JPQLQueryBNF
that represents the fragment of this Expression
that was used when parsing the given Expression
.expression
- The Expression
that is a descendant of this oneJPQLQueryBNF
that was used to parse the given expressionJPQLGrammar getGrammar()
JPQLGrammar
that defines how the JPQL query was parsed.JPQLGrammar
that was used to parse this Expression
int getLength()
Expression
, which is the
length of the text generated by toActualText()
.Expression
int getOffset()
Expression
within its parent hierarchy.Expression getParent()
Expression
.Expression
, which is never null
except for the
root of the treeJPQLQueryBNF getQueryBNF()
Expression
.JPQLQueryBNF
, which represents the grammar of this Expression
JPQLExpression getRoot()
Expression
treeboolean isAncestor(Expression expression)
Expression
is a parent of the given Expression
.expression
- The Expression
to verify its paternity with this Expression
true
if this Expression
is the same as the given Expression
or one of its parent; false
otherwiseListIterable<Expression> orderedChildren()
Expression
and its children.Expressions
representing this Expression
void populatePosition(QueryPosition queryPosition, int position)
Expression
located at the given position using the actual query,
which may have extra whitespace.position
- The array has one element and is the position of the Expression
to retrievejava.lang.String toActualText()
Expression
, which needs to include any
characters that are considered virtual, i.e. that was parsed when the query is incomplete and
is needed for functionality like content assist.Expression
java.lang.String toParsedText()
Expression
and its children. The expression
should contain whitespace even if the beautified version would not have any. For instance,
"SELECT e " should be returned where toParsedText()
would return "SELECT e".Expression