Class OrExpressionStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.CompoundExpressionStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.LogicalExpressionStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.OrExpressionStateObject
-
- All Implemented Interfaces:
StateObject
public class OrExpressionStateObject extends LogicalExpressionStateObject
TheORlogical operator chains multiple criteria together. A valid operand of anORoperator must be one of:TRUE,FALSE, andNULL. TheORoperator has a lower precedence than theANDoperator.NULLrepresents unknown. Therefore, if one operand isNULLand the other operand isTRUEthe result isTRUE, because oneTRUEoperand is sufficient for aTRUEresult. If one operand isNULLand the other operand is eitherFALSEorNULL, the result isNULL(unknown).The following table shows how the OR operator is evaluated based on its two operands:
TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL BNF:conditional_expression ::= conditional_expression OR conditional_term- Version:
- 2.4
- See Also:
OrExpression- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.CompoundExpressionStateObject
LEFT_STATE_OBJECT_PROPERTY, RIGHT_STATE_OBJECT_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description OrExpressionStateObject(StateObject parent)Creates a newOrExpressionStateObject.OrExpressionStateObject(StateObject parent, java.lang.String leftJpqlFragment, java.lang.String rightJpqlFragment)Creates a newOrExpressionStateObject.OrExpressionStateObject(StateObject parent, StateObject leftStateObject, StateObject rightStateObject)Creates a newOrExpressionStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.OrExpressiongetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.java.lang.StringgetIdentifier()Returns the identifier joining the twoStateObjects.protected java.lang.StringgetLeftQueryBNFId()Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the left side of the expression.protected java.lang.StringgetRightQueryBNFId()Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the right side of the expression.voidsetExpression(OrExpression expression)Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.CompoundExpressionStateObject
addChildren, getLeft, getRight, hasLeft, hasRight, isEquivalent, parseLeft, parseRight, setLeft, setRight, toTextInternal
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
acceptUnknownVisitor, acceptUnknownVisitor, addProblems, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, findIdentificationVariable, firePropertyChanged, getChangeSupport, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, initialize, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText
-
-
-
-
Constructor Detail
-
OrExpressionStateObject
public OrExpressionStateObject(StateObject parent)
Creates a newOrExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
OrExpressionStateObject
public OrExpressionStateObject(StateObject parent, StateObject leftStateObject, StateObject rightStateObject)
Creates a newOrExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullleftStateObject- TheStateObjectrepresenting the left expressionrightStateObject- TheStateObjectrepresenting the right expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
OrExpressionStateObject
public OrExpressionStateObject(StateObject parent, java.lang.String leftJpqlFragment, java.lang.String rightJpqlFragment)
Creates a newOrExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullleftJpqlFragment- The string representation of the left expression to parse and to convert into aStateObjectrightJpqlFragment- The string representation of the right expression to parse and to convert into aStateObject- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
getExpression
public OrExpression getExpression()
Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classLogicalExpressionStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getIdentifier
public java.lang.String getIdentifier()
Returns the identifier joining the twoStateObjects.- Specified by:
getIdentifierin classCompoundExpressionStateObject- Returns:
- The JPQL identifier join two expressions
-
getLeftQueryBNFId
protected java.lang.String getLeftQueryBNFId()
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the left side of the expression.- Specified by:
getLeftQueryBNFIdin classCompoundExpressionStateObject- Returns:
- The query BNF ID for the left side of the expression
-
getRightQueryBNFId
protected java.lang.String getRightQueryBNFId()
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the right side of the expression.- Specified by:
getRightQueryBNFIdin classCompoundExpressionStateObject- Returns:
- The query BNF ID for the right side of the expression
-
setExpression
public void setExpression(OrExpression expression)
Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting a logicalORexpression
-
-