Class NotExpressionStateObject

  • All Implemented Interfaces:
    StateObject

    public class NotExpressionStateObject
    extends AbstractStateObject
    BNF: expression ::= NOT conditional_primary

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

      • 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

      • NotExpressionStateObject

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

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

        public NotExpressionStateObject​(StateObject parent,
                                        java.lang.String jpqlFragment)
        Creates a new NotExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        jpqlFragment - The portion of the JPQL query that follows NOT, which will be parsed and converted into a StateObject
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • getExpression

        public NotExpression getExpression()
        Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
        Specified by:
        getExpression in interface StateObject
        Overrides:
        getExpression in class AbstractStateObject
        Returns:
        The parsed object when a JPQL query is parsed and converted into a StateObject or null when the JPQL query is manually created (i.e. not from a string)
      • getStateObject

        public StateObject getStateObject()
        Returns the StateObject representing the negated expression.
        Returns:
        The StateObject representing the negated expression
      • hasStateObject

        public boolean hasStateObject()
        Determines whether the StateObject representing the encapsulated expression is present or not.
        Returns:
        true if the encapsulated StateObject is not null; false otherwise
      • parse

        public void parse​(java.lang.String jpqlFragment)
        Parses the given JPQL fragment, which represents the negated expression, and creates the StateObject.
        Parameters:
        jpqlFragment - The portion of the query representing the negated expression
      • setExpression

        public void setExpression​(NotExpression 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 NOT expression
      • setStateObject

        public void setStateObject​(StateObject stateObject)
        Sets the given StateObject as the new negated expression.
        Parameters:
        stateObject - The StateObject representing the negated expression
      • 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