Class 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
    • 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

      • 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