Class AbstractSingleEncapsulatedExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
-
- All Implemented Interfaces:
Expression
- Direct Known Subclasses:
AbsExpression
,AggregateFunction
,AllOrAnyExpression
,CastExpression
,CoalesceExpression
,ConcatExpression
,EncapsulatedIdentificationVariableExpression
,ExistsExpression
,ExtractExpression
,FunctionExpression
,LengthExpression
,LowerExpression
,SizeExpression
,SqrtExpression
,SubExpression
,TableExpression
,TrimExpression
,TypeExpression
,UpperExpression
public abstract class AbstractSingleEncapsulatedExpression extends AbstractEncapsulatedExpression
This expression handles parsing a JPQL identifier followed by an expression encapsulated within parenthesis.BNF:expression ::= <identifier>(expression)
- Since:
- 2.3
- Version:
- 2.5
- Author:
- Pascal Filion
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
-
Fields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, 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_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression
.JPQLQueryBNF
findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNF
that represents the fragment of thisExpression
that was used when parsing the givenExpression
.abstract java.lang.String
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.Expression
getExpression()
Returns theExpression
that is encapsulated within parenthesis.boolean
hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.boolean
hasExpression()
Determines whether the encapsulated expression of the query was parsed.void
setExpression(AbstractExpression expression)
Manually sets the encapsulatedExpression
to become the given one.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
children, getGrammar, getIdentifierVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, isAncestor, orderedChildren, populatePosition, toActualText, toParsedText, toString
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
accept, getQueryBNF
-
-
-
-
Method Detail
-
acceptChildren
public void acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression
. This method can be used to optimize traversing the children since a new list is not created every timeExpression.children()
is called.This does not traverse the
Expression
sub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.- Parameters:
visitor
- Thevisitor
to visit the children of this object.
-
findQueryBNF
public JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNF
that represents the fragment of thisExpression
that was used when parsing the givenExpression
.- Specified by:
findQueryBNF
in interfaceExpression
- Overrides:
findQueryBNF
in classAbstractExpression
- Parameters:
expression
- TheExpression
that is a descendant of this one- Returns:
- The
JPQLQueryBNF
that was used to parse the given expression
-
getEncapsulatedExpressionQueryBNFId
public abstract java.lang.String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Returns:
- The BNF used to parse the encapsulated expression
-
getExpression
public final Expression getExpression()
Returns theExpression
that is encapsulated within parenthesis.- Returns:
- The
Expression
that is encapsulated within parenthesis
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.- Specified by:
hasEncapsulatedExpression
in classAbstractEncapsulatedExpression
- Returns:
true
if something was parsed;false
otherwise
-
hasExpression
public final boolean hasExpression()
Determines whether the encapsulated expression of the query was parsed.- Returns:
true
if the encapsulated expression was parsed;false
if it was not parsed
-
setExpression
public final void setExpression(AbstractExpression expression)
Manually sets the encapsulatedExpression
to become the given one.- Parameters:
expression
- The new encapsulatedExpression
, which cannot benull
- Throws:
java.lang.NullPointerException
- The givenAbstractExpression
cannot benull
-
-