Class ArithmeticFactorStateObject

  • All Implemented Interfaces:
    StateObject

    public class ArithmeticFactorStateObject
    extends AbstractStateObject
    This state object simply adds a plus or minus sign to the arithmetic primary expression.
    BNF: arithmetic_factor ::= [{+|-}] arithmetic_primary

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

      • ARITHMETIC_SIGN_PROPERTY

        public static final java.lang.String ARITHMETIC_SIGN_PROPERTY
        Notifies the arithmetic sign property 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

      • ArithmeticFactorStateObject

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

        public ArithmeticFactorStateObject​(StateObject parent,
                                           boolean plusSign,
                                           StateObject stateObject)
        Creates a new ArithmeticFactorStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stateObject - The StateObject that represents the arithmetic primary expression
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • addMinus

        public void addMinus()
        Makes sure the - sign is used.
      • addPlus

        public void addPlus()
        Makes sure the + sign is used.
      • getArithmeticSign

        public java.lang.String getArithmeticSign()
        Returns the arithmetic sign this expression is actually representing.
        Returns:
        The single character value of the arithmetic sign: '+' or '-'
      • getStateObject

        public StateObject getStateObject()
        Returns the StateObject that represents the arithmetic primary expression.
        Returns:
        The StateObject that represents the arithmetic primary expression or null if none was specified
      • hasMinusSign

        public boolean hasMinusSign()
        Determines whether the arithmetic sign is the minus sign.
        Returns:
        true if the arithmetic sign is the minus sign; false if it is the plus sign
      • hasPlusSign

        public boolean hasPlusSign()
        Determines whether the arithmetic sign is the plus sign.
        Returns:
        true if the arithmetic sign is the plus sign; false if it is the minus sign
      • hasStateObject

        public boolean hasStateObject()
        Determines whether an StateObject representing the arithmetic primary expression exists.
        Returns:
        true if there is the arithmetic primary expression exists; false otherwise
      • parse

        public void parse​(java.lang.String jpqlFragment)
        Parses the given JPQL fragment to become the new arithmetic primary.
        Parameters:
        jpqlFragment - A portion of a query that will be parsed and the StateObject that was created will become the new arithmetic primary of this ArithmeticFactorStateObject
      • setArithmeticSign

        public void setArithmeticSign​(boolean plusSign)
        Sets the arithmetic sign this expression is actually representing.
        Parameters:
        plusSign - The single character value of the arithmetic sign: '+' (true) or '-' (false)
      • setExpression

        public void setExpression​(ArithmeticFactor 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 arithmetic factor expression
      • setStateObject

        public void setStateObject​(StateObject stateObject)
        Returns the StateObject that represents the arithmetic primary expression.
        Parameters:
        stateObject - The StateObject that represents the arithmetic primary expression or null if none was specified
      • toggleArithmeticSign

        public void toggleArithmeticSign()
        Toggles the arithmetic sign, plus becomes minus and vice versa.
      • 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