Class ComparisonExpression
- java.lang.Object
- 
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
- 
- org.eclipse.persistence.jpa.jpql.parser.CompoundExpression
- 
- org.eclipse.persistence.jpa.jpql.parser.ComparisonExpression
 
 
 
- 
- All Implemented Interfaces:
- Expression
 
 public final class ComparisonExpression extends CompoundExpression Only the values of like types are permitted to be compared. A type is like another type if they correspond to the same Java language type, or if one is a primitive Java language type and the other is the wrapped Java class type equivalent (e.g., int and Integer are like types in this sense).There is one exception to this rule: it is valid to compare numeric values for which the rules of numeric promotion apply. Conditional expressions attempting to compare non-like type values are disallowed except for this numeric case. Note that the arithmetic operators and comparison operators are permitted to be applied to state-fields and input parameters of the wrapped Java class equivalents to the primitive numeric Java types. Two entities of the same abstract schema type are equal if and only if they have the same primary key value. Only equality/inequality comparisons over enumeration constants are required to be supported. JPA 1.0 - BNF: 
 JPA 2.0 - BNF:comparison_expression ::= string_expression comparison_operator {string_expression | all_or_any_expression} | boolean_expression {=|<>} {boolean_expression | all_or_any_expression} | enum_expression {=|<>} {enum_expression | all_or_any_expression} | datetime_expression comparison_operator {datetime_expression | all_or_any_expression} | entity_expression {=|<>} {entity_expression | all_or_any_expression} | arithmetic_expression comparison_operator {arithmetic_expression | all_or_any_expression}comparison_expression ::= string_expression comparison_operator {string_expression | all_or_any_expression} | boolean_expression {=|<>} {boolean_expression | all_or_any_expression} | enum_expression {=|<>} {enum_expression | all_or_any_expression} | datetime_expression comparison_operator {datetime_expression | all_or_any_expression} | entity_expression {=|<>} {entity_expression | all_or_any_expression} | arithmetic_expression comparison_operator {arithmetic_expression | all_or_any_expression} | entity_type_expression {=|<>} entity_type_expression}- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.3
 
- 
- 
Field Summary- 
Fields 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, UNDERSCORE
 - 
Fields 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 SummaryConstructors Constructor Description ComparisonExpression(AbstractExpression parent, java.lang.String identifier)Creates a newComparisonExpression.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.java.lang.StringgetComparisonOperator()Returns the comparison operator, which is either '=', '>', '>=', '<', '<=' or '<>'.java.lang.StringgetLeftExpressionQueryBNFId()Returns the unique identifier of theJPQLQueryBNFfor the left expression.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.java.lang.StringgetRightExpressionQueryBNFId()Returns the unique identifier of theJPQLQueryBNFfor the right expression.protected booleanisParsingComplete(WordParser wordParser, java.lang.String word, Expression expression)Determines whether the parsing is complete based on what is left in the given text.protected java.lang.StringparseIdentifier(WordParser wordParser)Parses the identifier of this expression.- 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.CompoundExpressionacceptChildren, addChildrenTo, addOrderedChildrenTo, findQueryBNF, getActualIdentifier, getIdentifier, getLeftExpression, getRightExpression, hasLeftExpression, hasRightExpression, hasSpaceAfterIdentifier, parse, setLeftExpression, setRightExpression, toParsedText
 - 
Methods 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, toString
 
- 
 
- 
- 
- 
Constructor Detail- 
ComparisonExpressionpublic ComparisonExpression(AbstractExpression parent, java.lang.String identifier) Creates a newComparisonExpression.- Parameters:
- parent- The parent of this expression
- identifier- The comparator identifier
 
 
- 
 - 
Method Detail- 
acceptpublic void accept(ExpressionVisitor visitor) Visits thisExpressionby the givenvisitor.- Parameters:
- visitor- The- ExpressionVisitorto visit this object
 
 - 
getComparisonOperatorpublic java.lang.String getComparisonOperator() Returns the comparison operator, which is either '=', '>', '>=', '<', '<=' or '<>'.- Returns:
- The operator comparing the two expressions
 
 - 
getLeftExpressionQueryBNFIdpublic java.lang.String getLeftExpressionQueryBNFId() Returns the unique identifier of theJPQLQueryBNFfor the left expression.- Specified by:
- getLeftExpressionQueryBNFIdin class- CompoundExpression
- Returns:
- The ID of the BNF used when parsing the expression before the identifier
 
 - 
getQueryBNFpublic JPQLQueryBNF getQueryBNF() Returns the BNF of thisExpression.- Returns:
- The JPQLQueryBNF, which represents the grammar of thisExpression
 
 - 
getRightExpressionQueryBNFIdpublic java.lang.String getRightExpressionQueryBNFId() Returns the unique identifier of theJPQLQueryBNFfor the right expression.- Specified by:
- getRightExpressionQueryBNFIdin class- CompoundExpression
- Returns:
- The ID of the BNF used when parsing the expression after the identifier
 
 - 
isParsingCompleteprotected boolean isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression) Determines whether the parsing is complete based on what is left in the given text. The text is never empty.- Overrides:
- isParsingCompletein class- AbstractExpression
- 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
 
 - 
parseIdentifierprotected java.lang.String parseIdentifier(WordParser wordParser) Parses the identifier of this expression.- Specified by:
- parseIdentifierin class- CompoundExpression
- Parameters:
- wordParser- The- WordParsercontaining the text to parse, which starts with the identifier
- Returns:
- The identifier for this expression
 
 
- 
 
-