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 voidacceptChildren(ExpressionVisitor visitor)Visits the children of thisExpression.JPQLQueryBNFfindQueryBNF(Expression expression)Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.abstract StringgetEncapsulatedExpressionQueryBNFId()Returns the BNF used to parse the encapsulated expression.ExpressiongetExpression()Returns theExpressionthat is encapsulated within parenthesis.booleanhasEncapsulatedExpression()Determines whether something was parsed after the left parenthesis.booleanhasExpression()Determines whether the encapsulated expression of the query was parsed.voidsetExpression(AbstractExpression expression)Manually sets the encapsulatedExpressionto 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
Expressionsub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitorin order to traverse the entire sub-hierarchy.- Parameters:
visitor- Thevisitorto visit the children of this object.
-
findQueryBNF
public JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.- Specified by:
findQueryBNFin interfaceExpression- Overrides:
findQueryBNFin classAbstractExpression- Parameters:
expression- TheExpressionthat is a descendant of this one- Returns:
- The
JPQLQueryBNFthat was used to parse the given expression
-
getEncapsulatedExpressionQueryBNFId
public abstract 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 theExpressionthat is encapsulated within parenthesis.- Returns:
- The
Expressionthat is encapsulated within parenthesis
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.- Specified by:
hasEncapsulatedExpressionin classAbstractEncapsulatedExpression- Returns:
trueif something was parsed;falseotherwise
-
hasExpression
public final boolean hasExpression()
Determines whether the encapsulated expression of the query was parsed.- Returns:
trueif the encapsulated expression was parsed;falseif it was not parsed
-
setExpression
public final void setExpression(AbstractExpression expression)
Manually sets the encapsulatedExpressionto become the given one.- Parameters:
expression- The new encapsulatedExpression, which cannot benull- Throws:
NullPointerException- The givenAbstractExpressioncannot benull
-
-