Class AndExpressionStateObject

  • All Implemented Interfaces:
    StateObject

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

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

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

    TRUEFALSENULL
    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
    • Constructor Detail

      • AndExpressionStateObject

        public AndExpressionStateObject​(StateObject parent)
        Creates a new AndExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • AndExpressionStateObject

        public AndExpressionStateObject​(StateObject parent,
                                        StateObject leftStateObject,
                                        StateObject rightStateObject)
        Creates a new AndExpressionStateObject.
        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
      • AndExpressionStateObject

        public AndExpressionStateObject​(StateObject parent,
                                        java.lang.String leftJpqlFragment,
                                        java.lang.String rightJpqlFragment)
        Creates a new AndExpressionStateObject.
        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​(AndExpression 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 AND expression