Class AbstractDoubleEncapsulatedExpressionStateObject

    • Field Detail

      • FIRST_STATE_OBJECT_PROPERTY

        public static final java.lang.String FIRST_STATE_OBJECT_PROPERTY
        Notifies the first StateObject property has changed.
        See Also:
        Constant Field Values
      • SECOND_STATE_OBJECT_PROPERTY

        public static final java.lang.String SECOND_STATE_OBJECT_PROPERTY
        Notifies the second StateObject property has changed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AbstractDoubleEncapsulatedExpressionStateObject

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

        protected AbstractDoubleEncapsulatedExpressionStateObject​(StateObject parent,
                                                                  StateObject firstStateObject,
                                                                  StateObject secondStateObject)
        Creates a new AbstractDoubleEncapsulatedExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        firstStateObject - The StateObject representing the first expression
        secondStateObject - The StateObject representing the second expression
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • AbstractDoubleEncapsulatedExpressionStateObject

        public AbstractDoubleEncapsulatedExpressionStateObject​(StateObject parent,
                                                               java.lang.String firstJpqlFragment,
                                                               java.lang.String secondJpqlFragment)
        Creates a new AbstractDoubleEncapsulatedExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        firstJpqlFragment - The string representation of the first encapsulated expression to parse and to convert into a StateObject representation
        secondJpqlFragment - The string representation of the second encapsulated expression to parse and to convert into a StateObject representation
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • getFirst

        public StateObject getFirst()
        Returns the StateObject representing the first expression.
        Returns:
        The first encapsulated StateObject or null if none exists
      • getFirstQueryBNFId

        protected abstract java.lang.String getFirstQueryBNFId()
        Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the first encapsulated expression.
        Returns:
        The query BNF ID for the first encapsulated expression
      • getSecond

        public StateObject getSecond()
        Returns the StateObject representing the second expression.
        Returns:
        The second encapsulated StateObject or null if none exists
      • getSecondQueryBNFId

        protected abstract java.lang.String getSecondQueryBNFId()
        Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the second encapsulated expression.
        Returns:
        The query BNF ID for the second encapsulated expression
      • hasFirst

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

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

        public void parseFirst​(java.lang.String jpqlFragment)
        Parses the given JPQL fragment, which will represent the first encapsulated expression.
        Parameters:
        jpqlFragment - The string representation of the first encapsulated expression to parse and to convert into a StateObject representation
      • parseSecond

        public void parseSecond​(java.lang.String jpqlFragment)
        Parses the given JPQL fragment, which will represent the second encapsulated expression.
        Parameters:
        jpqlFragment - The string representation of the second encapsulated expression to parse and to convert into a StateObject representation
      • setFirst

        public void setFirst​(StateObject firstStateObject)
        Sets the given StateObject to represent the first encapsulated expression.
        Parameters:
        firstStateObject - The new encapsulated StateObject representing the first expression
      • setSecond

        public void setSecond​(StateObject secondStateObject)
        Sets the given StateObject to represent the second encapsulated expression.
        Parameters:
        secondStateObject - The new encapsulated StateObject representing the second expression
      • toTextEncapsulatedExpression

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