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
This 
Expression takes care of parsing an expression that encapsulates two expressions
 separated by a comma.
 BNF: 
expression ::= <identifier>(first_expression, second_expression)- Version:
- 2.5.1
- See Also:
- Author:
- Pascal Filion
- 
Field SummaryFields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionCOMMA, 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.ExpressionABS, 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
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedAbstractDoubleEncapsulatedExpression(AbstractExpression parent, String identifier) Creates a newAbstractDoubleEncapsulatedExpression.
- 
Method SummaryModifier 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.AbstractEncapsulatedExpressionaddOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, parse, shouldParseRightParenthesis, toParsedTextMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionacceptUnknownVisitor, 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.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expressionaccept, getQueryBNF
- 
Constructor Details- 
AbstractDoubleEncapsulatedExpressionCreates a newAbstractDoubleEncapsulatedExpression.- Parameters:
- parent- The parent of this expression
- identifier- The JPQL identifier that starts this expression
 
 
- 
- 
Method Details- 
acceptChildrenDescription 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- The- visitorto visit the children of this object.
 
- 
addChildrenToDescription copied from class:AbstractExpressionAdds the children of thisAbstractExpressionto the given collection.- Overrides:
- addChildrenToin class- AbstractExpression
- Parameters:
- children- The collection used to store the children
 
- 
addOrderedEncapsulatedExpressionToDescription copied from class:AbstractEncapsulatedExpressionAdds theExpressionsrepresenting the encapsulatedExpression.- Specified by:
- addOrderedEncapsulatedExpressionToin class- AbstractEncapsulatedExpression
- Parameters:
- children- The list used to store the string representation of the encapsulated- Expression
 
- 
buildCollectionExpressionCreates a newCollectionExpressionthat will wrap the first and second expressions.- Returns:
- The first and second expressions wrapped by a temporary collection
 
- 
findQueryBNFDescription copied from interface:ExpressionRetrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.- Specified by:
- findQueryBNFin interface- Expression
- Overrides:
- findQueryBNFin class- AbstractExpression
- Parameters:
- expression- The- Expressionthat is a descendant of this one
- Returns:
- The JPQLQueryBNFthat was used to parse the given expression
 
- 
getFirstExpressionReturns theExpressionthat represents the first expression.- Returns:
- The expression that was parsed representing the first expression
 
- 
getSecondExpressionReturns theExpressionthat represents the second expression.- Returns:
- The expression that was parsed representing the second expression
 
- 
hasCommapublic final boolean hasComma()Determines whether the comma was parsed after the first expression.- Returns:
- trueif a comma was parsed after the first expression;- falseotherwise
 
- 
hasEncapsulatedExpressionpublic boolean hasEncapsulatedExpression()Description copied from class:AbstractEncapsulatedExpressionDetermines whether something was parsed after the left parenthesis.- Specified by:
- hasEncapsulatedExpressionin class- AbstractEncapsulatedExpression
- Returns:
- trueif something was parsed;- falseotherwise
 
- 
hasFirstExpressionpublic 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
 
- 
hasSecondExpressionpublic 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
 
- 
hasSpaceAfterCommapublic final boolean hasSpaceAfterComma()Determines whether a whitespace was parsed after the comma.- Returns:
- trueif there was a whitespace after the comma;- falseotherwise
 
- 
isParsingCompleteDescription 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 class- AbstractEncapsulatedExpression
- Parameters:
- wordParser- The text to parse based on the current position of the cursor
- word- The word that was retrieved from the given text, which is the first word in the text
- expression- The- Expressionthat has already been parsed
- Returns:
- trueif the text no longer can't be parsed by the current expression;- falseif more can be parsed
 
- 
isSecondExpressionOptionalprotected boolean isSecondExpressionOptional()Determines whether the second expression is optional or not.- Returns:
- trueif the second expression is optional;- falseif it is required
 
- 
parameterExpressionBNFReturns the BNF to be used to parse one of the encapsulated expression.- Parameters:
- index- The position of the encapsulated- Expressionthat 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
 
- 
parseEncapsulatedExpressionprotected 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 class- AbstractEncapsulatedExpression
- Parameters:
- wordParser- The text to parse based on the current position of the cursor
- whitespaceCount- 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
 
- 
removeEncapsulatedExpressionprotected 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 class- AbstractEncapsulatedExpression
 
- 
toParsedTextEncapsulatedExpressionDescription copied from class:AbstractEncapsulatedExpressionGenerates a string representation of the encapsulatedExpression.- Specified by:
- toParsedTextEncapsulatedExpressionin class- AbstractEncapsulatedExpression
- Parameters:
- writer- The buffer used to append the encapsulated- Expression's string representation
- actual- 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
 
 
-