Class AndExpressionStateObject
- 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.AndExpressionStateObject
-
- All Implemented Interfaces:
StateObject
public class AndExpressionStateObject extends LogicalExpressionStateObject
TheAND
logical operator chains multiple criteria together. A valid operand of anAND
operator must be one of:TRUE
,FALSE
, andNULL
. TheAND
operator has a higher precedence than theOR
operator.NULL
represents unknown. Therefore, if one operand isNULL
and the other operand isFALSE
the result isFALSE
, because oneFALSE
operand is sufficient for aFALSE
result. If one operand isNULL
and the other operand is eitherTRUE
orNULL
, the result isNULL
(unknown).The following table shows how the
AND
operator is evaluated based on its two operands:TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL BNF:conditional_term ::= conditional_term AND conditional_factor
- Version:
- 2.4
- See Also:
AndExpression
- 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 AndExpressionStateObject(StateObject parent)
Creates a newAndExpressionStateObject
.AndExpressionStateObject(StateObject parent, java.lang.String leftJpqlFragment, java.lang.String rightJpqlFragment)
Creates a newAndExpressionStateObject
.AndExpressionStateObject(StateObject parent, StateObject leftStateObject, StateObject rightStateObject)
Creates a newAndExpressionStateObject
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(StateObjectVisitor visitor)
Visits thisStateObject
by the givenvisitor
.AndExpression
getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.java.lang.String
getIdentifier()
Returns the identifier joining the twoStateObjects
.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.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.void
setExpression(AndExpression expression)
Keeps a reference of theparsed object
object, 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
-
AndExpressionStateObject
public AndExpressionStateObject(StateObject parent)
Creates a newAndExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AndExpressionStateObject
public AndExpressionStateObject(StateObject parent, StateObject leftStateObject, StateObject rightStateObject)
Creates a newAndExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
leftStateObject
- TheStateObject
representing the left expressionrightStateObject
- TheStateObject
representing the right expression- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AndExpressionStateObject
public AndExpressionStateObject(StateObject parent, java.lang.String leftJpqlFragment, java.lang.String rightJpqlFragment)
Creates a newAndExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
leftJpqlFragment
- The string representation of the left expression to parse and to convert into aStateObject
rightJpqlFragment
- 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 thisStateObject
by the givenvisitor
.- Parameters:
visitor
- Thevisitor
to visit this object
-
getExpression
public AndExpression getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpression
in interfaceStateObject
- Overrides:
getExpression
in classLogicalExpressionStateObject
- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObject
ornull
when 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:
getIdentifier
in 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:
getLeftQueryBNFId
in 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:
getRightQueryBNFId
in classCompoundExpressionStateObject
- Returns:
- The query BNF ID for the right side of the expression
-
setExpression
public void setExpression(AndExpression expression)
Keeps a reference of theparsed object
object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects
.- Parameters:
expression
- Theparsed object
representing a logicalAND
expression
-
-