public final class JPQLExpression extends AbstractExpression
A JPQL statement may be either a SELECT statement, an UPDATE statement, or a DELETE FROM statement.
QL_statement ::= select_statement
|
update_statement
|
delete_statement
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXISTS, FALSE, FETCH, FROM, FUNC, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, OBJECT, OF, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, SELECT, SET, SIZE, SOME, SQRT, SUBSTRING, SUM, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
Constructor and Description |
---|
JPQLExpression(CharSequence query,
IJPAVersion version)
Creates a new
JPQLExpression , which is the root of the JPQL parsed tree. |
JPQLExpression(CharSequence query,
IJPAVersion version,
boolean tolerant)
Creates a new
JPQLExpression , which is the root of the JPQL parsed tree. |
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 . |
QueryPosition |
buildPosition(String actualQuery,
int position)
Creates an object where the
Expression is the leaf at the given position. |
Expression |
getExpression(String actualQuery,
int position)
Returns the deepest
Expression for the given position. |
IJPAVersion |
getJPAVersion()
Returns the version of the Java Persistence to support.
|
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
Expression |
getQueryStatement()
Returns the
Expression representing the query, which is either a SELECT, a
DELETE or an UPDATE clause. |
AbstractExpression |
getUnknownEndingStatement()
Returns the
Expression that may contain a portion of the query that could not be
parsed, this happens when the query is either incomplete or malformed. |
IJPAVersion |
getVersion()
Returns the version of the JPQL to support, which is the version of the Java Persistence
specification.
|
boolean |
hasQueryStatement()
Determines whether a query was parsed.
|
boolean |
hasUnknownEndingStatement()
Determines whether the query that got parsed had some malformed or unknown information.
|
static Expression |
parseConditionalExpression(String abstractSchemaName,
CharSequence conditionalExpression,
IJPAVersion version,
boolean tolerant)
Creates a new
Expression by parsing the string, which represents a conditional
expression. |
children, findQueryBNF, getChildren, getParent, getRoot, identifierRole, identifiers, identifierVersion, isAncestor, isIdentifier, isVirtual, orderedChildren, queryBNF, toActualText, toParsedText, toString
public JPQLExpression(CharSequence query, IJPAVersion version)
JPQLExpression
, which is the root of the JPQL parsed tree.query
- The string representation of the JPQL query to parseversion
- The version of the JPQL to support, which is the version of the Java
Persistence specificationpublic JPQLExpression(CharSequence query, IJPAVersion version, boolean tolerant)
JPQLExpression
, which is the root of the JPQL parsed tree.query
- The string representation of the JPQL query to parseversion
- The version of the JPQL to support, which is the version of the Java
Persistence specificationtolerant
- Determines if the parsing system should be tolerant, meaning if it should try
to parse invalid or incomplete queriespublic static Expression parseConditionalExpression(String abstractSchemaName, CharSequence conditionalExpression, IJPAVersion version, boolean tolerant)
Expression
by parsing the string, which represents a conditional
expression.abstractSchemaName
- The abstract schema name for which the identification variable
"this" representsconditionalExpression
- The string representation of the conditional expression to parseversion
- The version of the JPQL to support, which is the version of the Java
Persistence specificationtolerant
- Determines whether the parsing system should be tolerant, meaning if it should
try to parse invalid or incomplete queriesExpression
representing the given conditional expressionpublic void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The visitor
to visit this objectpublic void acceptChildren(ExpressionVisitor visitor)
Expression
. This method can be used to optimize traversing
the children since a new list is not created every time Expression.children()
or Expression.getChildren()
is called.
This does not traverse the Expression
sub-hierarchy, use an subclass of
AbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.
visitor
- The visitor
to visit the children of this object.public QueryPosition buildPosition(String actualQuery, int position)
Expression
is the leaf at the given position.actualQuery
- The actual query is a string representation of the query that may contain
extra whitespaceposition
- The position of the cursor in the actual query, which is used to retrieve the
deepest Expression
. The position will be adjusted to fit into the beautified version
of the queryQueryPosition
public Expression getExpression(String actualQuery, int position)
Expression
for the given position.actualQuery
- The actual query is the text version of the query that may contain extra
whitespace and different formatting than the trim down version generated by the parsed treeposition
- The position in the actual query used to retrieve the Expression
Expression
located at the given position in the given querypublic IJPAVersion getJPAVersion()
public JPQLQueryBNF getQueryBNF()
Expression
.getQueryBNF
in class AbstractExpression
JPQLQueryBNF
, which represents the grammar of this Expression
public Expression getQueryStatement()
Expression
representing the query, which is either a SELECT, a
DELETE or an UPDATE clause.public AbstractExpression getUnknownEndingStatement()
Expression
that may contain a portion of the query that could not be
parsed, this happens when the query is either incomplete or malformed.public IJPAVersion getVersion()
public boolean hasQueryStatement()
true
the query was parsed; false
otherwisepublic boolean hasUnknownEndingStatement()
true
if the query could not be parsed correctly
because it is either incomplete or malformedEclipseLink 2.3.2, "build v20111125-r10461" API Reference