Class AllOrAnyExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AllOrAnyExpression
-
- All Implemented Interfaces:
Expression
public final class AllOrAnyExpression extends AbstractSingleEncapsulatedExpression
An ALL conditional expression is a predicate that istrue
if the comparison operation istrue
for all values in the result of the subquery or the result of the subquery is empty. An ALL conditional expression isfalse
if the result of the comparison isfalse
for at least one row, and is unknown if neithertrue
norfalse
.An ANY conditional expression is a predicate that is
true
if the comparison operation istrue
for some value in the result of the subquery. An ANY conditional expression isfalse
if the result of the subquery is empty or if the comparison operation isfalse
for every value in the result of the subquery, and is unknown if neithertrue
norfalse
. The keyword SOME is synonymous with ANY. The comparison operators used with ALL or ANY conditional expressions are =, <, <=, >, >=, <>. The result of the subquery must be like that of the other argument to the comparison operator in type.BNF:all_or_any_expression ::= {ALL|ANY|SOME}(subquery)
- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.3
-
-
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
-
-
Constructor Summary
Constructors Constructor Description AllOrAnyExpression(AbstractExpression parent, java.lang.String identifier)
Creates a newAllOrAnyExpression
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.java.lang.String
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.JPQLQueryBNF
getQueryBNF()
Returns the BNF of thisExpression
.protected AbstractExpression
parse(WordParser wordParser, java.lang.String queryBNFId, boolean tolerant)
Parses the given text by using the specified BNF.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
acceptChildren, addChildrenTo, addOrderedEncapsulatedExpressionTo, findQueryBNF, getExpression, hasEncapsulatedExpression, hasExpression, parseEncapsulatedExpression, removeEncapsulatedExpression, setExpression, toParsedTextEncapsulatedExpression
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
-
Methods 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, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
-
-
-
-
Constructor Detail
-
AllOrAnyExpression
public AllOrAnyExpression(AbstractExpression parent, java.lang.String identifier)
Creates a newAllOrAnyExpression
.
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
getEncapsulatedExpressionQueryBNFId
public java.lang.String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFId
in classAbstractSingleEncapsulatedExpression
- Returns:
- The BNF used to parse the encapsulated expression
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression
.- Returns:
- The
JPQLQueryBNF
, which represents the grammar of thisExpression
-
parse
protected AbstractExpression parse(WordParser wordParser, java.lang.String queryBNFId, boolean tolerant)
Parses the given text by using the specified BNF.- Overrides:
parse
in classAbstractExpression
- Parameters:
wordParser
- The text to parse based on the current position of the cursorqueryBNFId
- The unique identifier of theJPQLQueryBNF
that is used to determine how to parse the text at the current cursor position within the JPQL querytolerant
- Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries- Returns:
- The
Expression
representing the given sub-query
-
-