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_statementCOMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCOREABS, 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(java.lang.CharSequence query,
IJPAVersion version)
Creates a new
JPQLExpression, which is the root of the JPQL parsed tree. |
JPQLExpression(java.lang.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(java.lang.String actualQuery,
int position)
Creates an object where the
Expression is the leaf at the given position. |
Expression |
getExpression(java.lang.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(java.lang.String abstractSchemaName,
java.lang.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, toStringpublic JPQLExpression(java.lang.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(java.lang.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(java.lang.String abstractSchemaName, java.lang.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(java.lang.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 queryQueryPositionpublic Expression getExpression(java.lang.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 ExpressionExpression located at the given position in the given querypublic IJPAVersion getJPAVersion()
public JPQLQueryBNF getQueryBNF()
Expression.getQueryBNF in class AbstractExpressionJPQLQueryBNF, which represents the grammar of this Expressionpublic 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