Class ExistsExpressionStateObject

  • All Implemented Interfaces:
    StateObject

    public class ExistsExpressionStateObject
    extends AbstractSingleEncapsulatedExpressionStateObject
    An EXISTS expression is a predicate that is true only if the result of the subquery consists of one or more values and that is false otherwise.
    BNF: exists_expression ::= [NOT] EXISTS(subquery)

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

      • NOT_PROPERTY

        public static String NOT_PROPERTY
        Notifies the visibility of the NOT identifier has changed.
    • Constructor Detail

      • ExistsExpressionStateObject

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

        public ExistsExpressionStateObject​(StateObject parent,
                                           boolean not,
                                           StateObject stateObject)
        Creates a new ExistsExpressionStateObject.
        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 subquery
        Throws:
        NullPointerException - The given parent cannot be null
      • ExistsExpressionStateObject

        public ExistsExpressionStateObject​(StateObject parent,
                                           boolean not,
                                           String jpqlFragment)
        Creates a new ExistsExpressionStateObject.
        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
        jpqlFragment - The portion of the query representing the encapsulated expression
        Throws:
        NullPointerException - The given parent cannot be null
      • ExistsExpressionStateObject

        public ExistsExpressionStateObject​(StateObject parent,
                                           StateObject stateObject)
        Creates a new ExistsExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stateObject - The StateObject representing the subquery
        Throws:
        NullPointerException - The given parent cannot be null
      • ExistsExpressionStateObject

        public ExistsExpressionStateObject​(StateObject parent,
                                           String jpqlFragment)
        Creates a new ExistsExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        jpqlFragment - The portion of the query representing the encapsulated expression
        Throws:
        NullPointerException - The given parent cannot be null
    • Method Detail

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

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

        public void setExpression​(ExistsExpression 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 an EXISTS 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)
      • toggleNot

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