Class NullComparisonExpressionStateObject

  • All Implemented Interfaces:
    StateObject

    public class NullComparisonExpressionStateObject
    extends AbstractStateObject
    A null comparison tests whether or not the single-valued path expression or input parameter is a NULL value.
    BNF: null_comparison_expression ::= {single_valued_path_expression | input_parameter} IS [NOT] NULL

    Version:
    2.4
    See Also:
    NullComparisonExpression
    Author:
    Pascal Filion
    Since:
    2.4
    • Field Detail

      • NOT_PROPERTY

        public static final java.lang.String NOT_PROPERTY
        Notifies the visibility of the NOT identifier has changed.
        See Also:
        Constant Field Values
      • STATE_OBJECT_PROPERTY

        public static final java.lang.String STATE_OBJECT_PROPERTY
        Notifies the state object property has changed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • NullComparisonExpressionStateObject

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

        public NullComparisonExpressionStateObject​(StateObject parent,
                                                   boolean not,
                                                   StateObject stateObject)
        Creates a new NullComparisonExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        not - Determines whether the NOT identifier is part of the expression or not
        stateObject - The StateObject representing the collection-valued path expression
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • NullComparisonExpressionStateObject

        public NullComparisonExpressionStateObject​(StateObject parent,
                                                   boolean not,
                                                   java.lang.String path)
        Creates a new NullComparisonExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        not - Determines whether the NOT identifier is part of the expression or not
        path - Either the singled-valued path expression or the input parameter
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • NullComparisonExpressionStateObject

        public NullComparisonExpressionStateObject​(StateObject parent,
                                                   StateObject stateObject)
        Creates a new NullComparisonExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stateObject - The StateObject representing the collection-valued path expression
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • NullComparisonExpressionStateObject

        public NullComparisonExpressionStateObject​(StateObject parent,
                                                   java.lang.String path)
        Creates a new NullComparisonExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        path - Either the singled-valued path expression or the input parameter
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • getStateObject

        public StateObject getStateObject()
        Returns the StateObject representing the collection-valued path expression.
        Returns:
        The StateObject representing the collection-valued path expression
      • hasNot

        public boolean hasNot()
        Determines whether the NOT identifier is used or not.
        Returns:
        true if the NOT identifier is part of the expression; false otherwise
      • hasStateObject

        public boolean hasStateObject()
        Determines whether there is a StateObject representing the collection-valued path expression.
        Returns:
        true if the StateObject is not null; false otherwise
      • removeNot

        public void removeNot()
        Makes sure the NOT identifier is not specified.
      • setExpression

        public void setExpression​(NullComparisonExpression 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 the null expression
      • setNot

        public void setNot​(boolean not)
        Sets whether the NOT identifier should be part of the expression or not.
        Parameters:
        not - true if the NOT identifier should be part of the expression; false otherwise
      • setStateObject

        public void setStateObject​(StateObject stateObject)
        Sets the given StateObject as the collection-valued path expression.
        Parameters:
        stateObject - The StateObject that represents the collection-valued path expression
      • toggleNot

        public void toggleNot()
        Changes the visibility state of the NOT identifier.
      • toTextInternal

        protected void toTextInternal​(java.lang.Appendable writer)
                               throws java.io.IOException
        Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.
        Specified by:
        toTextInternal in class AbstractStateObject
        Parameters:
        writer - The writer used to print out the string representation
        Throws:
        java.io.IOException - This should never happens, it is only required because Appendable is used instead of any concrete class