Class CollectionMemberExpressionStateObject

  • All Implemented Interfaces:
    StateObject

    public class CollectionMemberExpressionStateObject
    extends AbstractStateObject
    This expression tests whether the designated value is a member of the collection specified by the collection-valued path expression. If the collection-valued path expression designates an empty collection, the value of the MEMBER OF expression is FALSE and the value of the NOT MEMBER OF expression is TRUE. Otherwise, if the value of the collection-valued path expression or single-valued association-field path expression in the collection member expression is NULL or unknown, the value of the collection member expression is unknown.
    BNF: collection_member_expression ::= entity_or_value_expression [NOT] MEMBER [OF] collection_valued_path_expression

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

      • ENTITY_STATE_OBJECT_PROPERTY

        public static final java.lang.String ENTITY_STATE_OBJECT_PROPERTY
        Notifies the entity state object property has changed.
        See Also:
        Constant Field Values
      • NOT_PROPERTY

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

        public static final java.lang.String OF_PROPERTY
        Notifies the visibility of the OF identifier has changed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • CollectionMemberExpressionStateObject

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

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

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

      • getEntityStateObject

        public StateObject getEntityStateObject()
      • hasEntityStateObject

        public boolean hasEntityStateObject()
      • 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
      • hasOf

        public boolean hasOf()
      • removeNot

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

        public void removeOf()
        Makes sure the OF identifier is not specified.
      • setEntityStateObject

        public void setEntityStateObject​(StateObject entityStateObject)
        Sets
        Parameters:
        entityStateObject -
      • setExpression

        public void setExpression​(CollectionMemberExpression 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 collection member 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
      • setOf

        public void setOf​(boolean of)
      • toggleNot

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

        public void toggleOf()
        Changes the visibility state of the OF 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