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,MathDoubleExpression,ModExpression,NullIfExpression
This 
Expression takes 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
 - See Also:
 
- 
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, UNDERSCOREFields 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, CEILING, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DATE, DATETIME, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXP, EXTRACT, FALSE, FETCH, FIRST, FLOOR, 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, LN, LOCAL, 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, POWER, QUOTE, REGEXP, ROUND, SCN, SELECT, SET, SIGN, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIME, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE - 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractDoubleEncapsulatedExpression(AbstractExpression parent, String identifier) Creates a newAbstractDoubleEncapsulatedExpression. - 
Method Summary
Modifier and TypeMethodDescriptionvoidacceptChildren(ExpressionVisitor visitor) Visits the children of thisExpression.protected voidaddChildrenTo(Collection<Expression> children) Adds the children of thisAbstractExpressionto the given collection.protected voidaddOrderedEncapsulatedExpressionTo(List<Expression> children) Adds theExpressionsrepresenting the encapsulatedExpression.final CollectionExpressionCreates a newCollectionExpressionthat will wrap the first and second expressions.findQueryBNF(Expression expression) Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.final ExpressionReturns theExpressionthat represents the first expression.final ExpressionReturns theExpressionthat represents the second expression.final booleanhasComma()Determines whether the comma was parsed after the first expression.booleanDetermines whether something was parsed after the left parenthesis.final booleanDetermines whether the first expression of the query was parsed.final booleanDetermines whether the second expression of the query was parsed.final booleanDetermines whether a whitespace was parsed after the comma.protected booleanisParsingComplete(WordParser wordParser, String word, Expression expression) Determines whether the parsing is complete based on what is left in the given text.protected booleanDetermines whether the second expression is optional or not.abstract StringparameterExpressionBNF(int index) Returns the BNF to be used to parse one of the encapsulated expression.protected voidparseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant) Parses the encapsulated expression by starting at the current position, which is part of the givenWordParser.protected voidRemoves the encapsulatedExpressionthat was parsed, it should not be part of this one.protected voidtoParsedTextEncapsulatedExpression(StringBuilder writer, boolean actual) Generates a string representation of the encapsulatedExpression.Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, parse, shouldParseRightParenthesis, toParsedTextMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
acceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
accept, getQueryBNF 
- 
Constructor Details
- 
AbstractDoubleEncapsulatedExpression
Creates a newAbstractDoubleEncapsulatedExpression.- Parameters:
 parent- The parent of this expressionidentifier- The JPQL identifier that starts this expression
 
 - 
 - 
Method Details
- 
acceptChildren
Description copied from interface:ExpressionVisits 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.
 - 
addChildrenTo
Description copied from class:AbstractExpressionAdds the children of thisAbstractExpressionto the given collection.- Overrides:
 addChildrenToin classAbstractExpression- Parameters:
 children- The collection used to store the children
 - 
addOrderedEncapsulatedExpressionTo
Description copied from class:AbstractEncapsulatedExpressionAdds theExpressionsrepresenting the encapsulatedExpression.- Specified by:
 addOrderedEncapsulatedExpressionToin classAbstractEncapsulatedExpression- Parameters:
 children- The list used to store the string representation of the encapsulatedExpression
 - 
buildCollectionExpression
Creates a newCollectionExpressionthat will wrap the first and second expressions.- Returns:
 - The first and second expressions wrapped by a temporary collection
 
 - 
findQueryBNF
Description copied from interface:ExpressionRetrieves 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
Returns theExpressionthat represents the first expression.- Returns:
 - The expression that was parsed representing the first 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()Description copied from class:AbstractEncapsulatedExpressionDetermines 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
 - 
isParsingComplete
Description copied from class:AbstractExpressionDetermines whether the parsing is complete based on what is left in the given text. The text is never empty.- Overrides:
 isParsingCompletein classAbstractEncapsulatedExpression- Parameters:
 wordParser- The text to parse based on the current position of the cursorword- The word that was retrieved from the given text, which is the first word in the textexpression- TheExpressionthat has already been parsed- Returns:
 trueif the text no longer can't be parsed by the current expression;falseif more can be parsed
 - 
isSecondExpressionOptional
protected boolean isSecondExpressionOptional()Determines whether the second expression is optional or not.- Returns:
 trueif the second expression is optional;falseif it is required
 - 
parameterExpressionBNF
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
 
 - 
parseEncapsulatedExpression
protected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant) Description copied from class:AbstractEncapsulatedExpressionParses the encapsulated expression by starting at the current position, which is part of the givenWordParser.- Specified by:
 parseEncapsulatedExpressionin classAbstractEncapsulatedExpression- Parameters:
 wordParser- The text to parse based on the current position of the cursorwhitespaceCount- The number of whitespace characters that were parsed after '('tolerant- Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries
 - 
removeEncapsulatedExpression
protected void removeEncapsulatedExpression()Description copied from class:AbstractEncapsulatedExpressionRemoves the encapsulatedExpressionthat was parsed, it should not be part of this one. This happens when the parsed information does not have both '(' and ')'.- Specified by:
 removeEncapsulatedExpressionin classAbstractEncapsulatedExpression
 - 
toParsedTextEncapsulatedExpression
Description copied from class:AbstractEncapsulatedExpressionGenerates a string representation of the encapsulatedExpression.- Specified by:
 toParsedTextEncapsulatedExpressionin classAbstractEncapsulatedExpression- Parameters:
 writer- The buffer used to append the encapsulatedExpression's string representationactual- Determines whether to include any characters that are considered virtual, i.e. that was parsed when the query is incomplete and is needed for functionality like content assist
 
 -