Class AbstractDoubleEncapsulatedExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractDoubleEncapsulatedExpression
-
- All Implemented Interfaces:
Expression
- Direct Known Subclasses:
DatabaseType,ModExpression,NullIfExpression
public abstract class AbstractDoubleEncapsulatedExpression extends AbstractEncapsulatedExpression
ThisExpressiontakes care of parsing an expression that encapsulates two expressions separated by a comma.BNF:expression ::= <identifier>(first_expression, second_expression)- Since:
- 2.3
- Version:
- 2.5.1
- Author:
- Pascal Filion
- See Also:
ConcatExpression,ModExpression,NullIfExpression
-
-
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.CollectionExpressionbuildCollectionExpression()Creates a newCollectionExpressionthat will wrap the first and second expressions.JPQLQueryBNFfindQueryBNF(Expression expression)Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.ExpressiongetFirstExpression()Returns theExpressionthat represents the first expression.ExpressiongetSecondExpression()Returns theExpressionthat represents the second expression.booleanhasComma()Determines whether the comma was parsed after the first expression.booleanhasEncapsulatedExpression()Determines whether something was parsed after the left parenthesis.booleanhasFirstExpression()Determines whether the first expression of the query was parsed.booleanhasSecondExpression()Determines whether the second expression of the query was parsed.booleanhasSpaceAfterComma()Determines whether a whitespace was parsed after the comma.abstract StringparameterExpressionBNF(int index)Returns the BNF to be used to parse one of the encapsulated expression.-
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.
-
buildCollectionExpression
public final CollectionExpression buildCollectionExpression()
Creates a newCollectionExpressionthat will wrap the first and second expressions.- Returns:
- The first and second expressions wrapped by a temporary collection
-
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
-
getFirstExpression
public final Expression getFirstExpression()
Returns theExpressionthat represents the first expression.- Returns:
- The expression that was parsed representing the first expression
-
getSecondExpression
public final Expression getSecondExpression()
Returns theExpressionthat represents the second expression.- Returns:
- The expression that was parsed representing the second expression
-
hasComma
public final boolean hasComma()
Determines whether the comma was parsed after the first expression.- Returns:
trueif a comma was parsed after the first expression;falseotherwise
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.- Specified by:
hasEncapsulatedExpressionin classAbstractEncapsulatedExpression- Returns:
trueif something was parsed;falseotherwise
-
hasFirstExpression
public final boolean hasFirstExpression()
Determines whether the first expression of the query was parsed.- Returns:
trueif the first expression was parsed;falseif it was not parsed
-
hasSecondExpression
public final boolean hasSecondExpression()
Determines whether the second expression of the query was parsed.- Returns:
trueif the second expression was parsed;falseif it was not parsed
-
hasSpaceAfterComma
public final boolean hasSpaceAfterComma()
Determines whether a whitespace was parsed after the comma.- Returns:
trueif there was a whitespace after the comma;falseotherwise
-
parameterExpressionBNF
public abstract String parameterExpressionBNF(int index)
Returns the BNF to be used to parse one of the encapsulated expression.- Parameters:
index- The position of the encapsulatedExpressionthat needs to be parsed within the parenthesis, which starts at position 0- Returns:
- The BNF to be used to parse one of the encapsulated expression
-
-