EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model.query
Class OrExpressionStateObject

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractStateObject
      extended by org.eclipse.persistence.jpa.jpql.model.query.CompoundExpressionStateObject
          extended by org.eclipse.persistence.jpa.jpql.model.query.LogicalExpressionStateObject
              extended by org.eclipse.persistence.jpa.jpql.model.query.OrExpressionStateObject
All Implemented Interfaces:
StateObject

public class OrExpressionStateObject
extends LogicalExpressionStateObject

The OR logical operator chains multiple criteria together. A valid operand of an OR operator must be one of: TRUE, FALSE, and NULL. The OR operator has a lower precedence than the AND operator.

NULL represents unknown. Therefore, if one operand is NULL and the other operand is TRUE the result is TRUE, because one TRUE operand is sufficient for a TRUE result. If one operand is NULL and the other operand is either FALSE or NULL, the result is NULL (unknown).

The following table shows how the OR operator is evaluated based on its two operands:

TRUEFALSENULL
TRUETRUETRUETRUE
FALSETRUEFALSENULL
NULLTRUENULLNULL
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.model.query.CompoundExpressionStateObject
LEFT_STATE_OBJECT_PROPERTY, RIGHT_STATE_OBJECT_PROPERTY
 
Constructor Summary
OrExpressionStateObject(StateObject parent)
          Creates a new OrExpressionStateObject.
OrExpressionStateObject(StateObject parent, StateObject leftStateObject, StateObject rightStateObject)
          Creates a new OrExpressionStateObject.
OrExpressionStateObject(StateObject parent, java.lang.String leftJpqlFragment, java.lang.String rightJpqlFragment)
          Creates a new OrExpressionStateObject.
 
Method Summary
 void accept(StateObjectVisitor visitor)
          Visits this StateObject by the given visitor.
 OrExpression getExpression()
          Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
 java.lang.String getIdentifier()
          Returns the identifier joining the two StateObjects.
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(OrExpression expression)
          Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.model.query.CompoundExpressionStateObject
addChildren, getLeft, getRight, hasLeft, hasRight, isEquivalent, parseLeft, parseRight, setLeft, setRight, toTextInternal
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OrExpressionStateObject

public OrExpressionStateObject(StateObject parent)
Creates a new OrExpressionStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
Throws:
java.lang.NullPointerException - The given parent cannot be null

OrExpressionStateObject

public OrExpressionStateObject(StateObject parent,
                               StateObject leftStateObject,
                               StateObject rightStateObject)
Creates a new OrExpressionStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
leftStateObject - The StateObject representing the left expression
rightStateObject - The StateObject representing the right expression
Throws:
java.lang.NullPointerException - The given parent cannot be null

OrExpressionStateObject

public OrExpressionStateObject(StateObject parent,
                               java.lang.String leftJpqlFragment,
                               java.lang.String rightJpqlFragment)
Creates a new OrExpressionStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
leftJpqlFragment - The string representation of the left expression to parse and to convert into a StateObject
rightJpqlFragment - The string representation of the right expression to parse and to convert into a StateObject
Throws:
java.lang.NullPointerException - The given parent cannot be null
Method Detail

accept

public void accept(StateObjectVisitor visitor)
Visits this StateObject by the given visitor.

Parameters:
visitor - The visitor to visit this object

getExpression

public OrExpression getExpression()
Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.

Specified by:
getExpression in interface StateObject
Overrides:
getExpression in class LogicalExpressionStateObject
Returns:
The parsed object when a JPQL query is parsed and converted into a StateObject or null when the JPQL query is manually created (i.e. not from a string)

getIdentifier

public java.lang.String getIdentifier()
Returns the identifier joining the two StateObjects.

Specified by:
getIdentifier in class CompoundExpressionStateObject
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 class CompoundExpressionStateObject
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 class CompoundExpressionStateObject
Returns:
The query BNF ID for the right side of the expression

setExpression

public void setExpression(OrExpression expression)
Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.

Parameters:
expression - The parsed object representing a logical OR expression

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference