public final class IdentificationVariable extends AbstractExpression
Requirements:
An identification variable can range over an entity, embeddable, or basic abstract schema type. An identification variable designates an instance of an abstract schema type or an element of a collection of abstract schema type instances.
Note that for identification variables referring to an instance of an association or collection
represented as a Map
, the identification variable is of the abstract schema
type of the map value.
An identification variable always designates a reference to a single value. It is declared in one of three ways:
All identification variables used in the SELECT, WHERE, ORDER BY, GROUP BY, or HAVING clause of a SELECT or DELETE statement must be declared in the FROM clause. The identification variables used in the WHERE clause of an UPDATE statement must be declared in the UPDATE clause.
An identification variable is scoped to the query (or subquery) in which it is defined and is also visible to any subqueries within that query scope that do not define an identification variable of the same name.
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
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 . |
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
StateFieldPathExpression |
getStateFieldPathExpression()
Returns the actual representation of the parsed information.
|
java.lang.String |
getText()
Returns the encapsulated text of this
AbstractExpression , which can be used in various
ways, it can be a keyword, a literal, etc. |
boolean |
isVirtual()
Determines whether this identification variable is virtual, meaning it's not part of the query
but is required for proper navigability.
|
java.lang.String |
toParsedText()
Returns a string representation of this
StringExpression and its children. |
children, findQueryBNF, getChildren, getParent, getRoot, identifierRole, identifiers, identifierVersion, isAncestor, isIdentifier, orderedChildren, queryBNF, toActualText, toString
public 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 JPQLQueryBNF getQueryBNF()
Expression
.getQueryBNF
in class AbstractExpression
JPQLQueryBNF
, which represents the grammar of this Expression
public StateFieldPathExpression getStateFieldPathExpression()
isVirtual()
returns true
. This is valid in an UPDATE and
DELETE queries where the identification variable is not specified.java.lang.IllegalAccessError
- If this expression does not have a virtual identification variablepublic java.lang.String getText()
AbstractExpression
, which can be used in various
ways, it can be a keyword, a literal, etc.public boolean isVirtual()
isVirtual
in class AbstractExpression
true
if this identification variable was virtually created to fully
qualify path expression; false
if it was parsedpublic java.lang.String toParsedText()
StringExpression
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 Expression#toText()
would return
"SELECT e".toParsedText
in interface Expression
toParsedText
in class AbstractExpression
StringExpression
EclipseLink 2.3.2, "build v20111125-r10461" API Reference