Class FunctionExpressionStateObject

    • Field Detail

      • ARGUMENTS_LIST

        public static final java.lang.String ARGUMENTS_LIST
        Notifies the list of arguments has changed.
        See Also:
        Constant Field Values
      • FUNCTION_NAME_PROPERTY

        public static final java.lang.String FUNCTION_NAME_PROPERTY
        Notifies the function name property has changed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • FunctionExpressionStateObject

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

        public FunctionExpressionStateObject​(StateObject parent,
                                             java.lang.String identifier,
                                             java.lang.String functionName,
                                             java.util.List<? extends StateObject> arguments)
        Creates a new AbstractFunctionExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        identifier - The JPQL identifier of the SQL expression
        functionName - The name of the native database function
        arguments - The list of StateObject representing the arguments to pass to the native database function
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • addListChangeListener

        public void addListChangeListener​(java.lang.String listName,
                                          IListChangeListener<StateObject> listener)
        Registers the given IListChangeListener for the specified list. The listener will be notified only when items are added, removed, moved from the list.
        Specified by:
        addListChangeListener in interface ListHolderStateObject<StateObject>
        Parameters:
        listName - The name of the list for which the listener will be notified when the content of the list has changed
        listener - The listener to be notified upon changes
      • areChildrenEquivalent

        protected boolean areChildrenEquivalent​(FunctionExpressionStateObject stateObject)
        Determines whether the children of this StateObject are equivalent to the children of the given one, i.e. the information of the StateObjects is the same.
        Parameters:
        stateObject - The StateObject to compare its children to this one's children
        Returns:
        true if both have equivalent children; false otherwise
      • canMoveDown

        public boolean canMoveDown​(StateObject item)
        Determines whether the given StateObject can be moved down by one position in the list owned by its parent.
        Specified by:
        canMoveDown in interface ListHolderStateObject<StateObject>
        Parameters:
        item - The StateObject that could potentially be moved down
        Returns:
        true if the object can be moved down by one unit; false otherwise
      • canMoveUp

        public boolean canMoveUp​(StateObject item)
        Determines whether the given StateObject can be moved up by one position in the list owned by its parent.
        Specified by:
        canMoveUp in interface ListHolderStateObject<StateObject>
        Parameters:
        item - The StateObject that could potentially be moved up
        Returns:
        true if the object can be moved up by one unit; false otherwise
      • getFunctionName

        public java.lang.String getFunctionName()
        Returns the name of the native database function.
        Returns:
        The new name of the native database function
      • getIdentifier

        public java.lang.String getIdentifier()
        Returns the JPQL identifier of this expression.
        Returns:
        The JPQL identifier
      • getQuotedFunctionName

        public java.lang.String getQuotedFunctionName()
        Returns the quoted name of the native database function.
        Returns:
        The new name of the native database function, which is quoted
      • hasFunctionName

        public boolean hasFunctionName()
        Determines whether the name of the native SQL function has been specified.
        Returns:
        true if the function name has been specified; false otherwise
      • removeListChangeListener

        public void removeListChangeListener​(java.lang.String listName,
                                             IListChangeListener<StateObject> listener)
        Unregisters the given IListChangeListener that was registered for the specified list. The listener will no longer be notified only when items are added, removed, moved from the list.
        Specified by:
        removeListChangeListener in interface ListHolderStateObject<StateObject>
        Parameters:
        listName - The name of the list for which the listener was registered
        listener - The listener to unregister
      • setExpression

        public void setExpression​(FunctionExpression 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 SQL expression
      • setFunctionName

        public void setFunctionName​(java.lang.String functionName)
        Sets the unquoted name of the native database function.
        Parameters:
        functionName - The new name of the native database function, which should be unquoted
      • 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