Interface StateObject

    • Method Detail

      • addPropertyChangeListener

        void addPropertyChangeListener​(java.lang.String propertyName,
                                       IPropertyChangeListener<?> listener)
        Registers the given IPropertyChangeListener for the specified property. The listener will be notified only for changes to the specified property.
        Parameters:
        propertyName - The name of the property for which the listener was registered
        listener - The listener to be notified upon changes
        Throws:
        java.lang.NullPointerException - IPropertyChangeListener cannot be null
        java.lang.IllegalArgumentException - The listener is already registered with the property name
      • children

        java.lang.Iterable<StateObject> children()
        Returns the ordered children of this StateObject.
        Returns:
        The children of this StateObject or an empty iterable this state object does not have children
      • decorate

        void decorate​(StateObject decorator)
        Decorates this StateObject with the given decorator. It means the behavior of this StateObject is modified by the given one. By default, this StateObject becomes the parent of the given one.
        Parameters:
        decorator - The StateObject decorating this one
      • getDeclaration

        DeclarationStateObject getDeclaration()
        Returns the declaration clause which defines the domain of the query by declaring identification variables.
        Returns:
        The declaration clause of which this StateObject is a child; i.e. either the top-level declaration if this is part of the top query or the sub-level declaration if this is part of a subquery
      • getDecorator

        StateObject getDecorator()
        Returns the StateObject decorating this one if one has been set, which means the behavior of this StateObject is modified by the decorator.
        Returns:
        The StateObject decorating this one
      • getExpression

        Expression getExpression()
        Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
        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)
      • getGrammar

        JPQLGrammar getGrammar()
        Returns the grammar that defines how to parse a JPQL query.
        Returns:
        The grammar that was used to parse the JPQL query
      • getManagedTypeProvider

        IManagedTypeProvider getManagedTypeProvider()
        Returns the provider of managed types.
        Returns:
        The provider that gives access to the managed types
      • getParent

        StateObject getParent()
        Returns the parent of this StateObject.
        Returns:
        Returns the parent of this StateObject, which is null only when this is the root of the hierarchy
      • isDecorated

        boolean isDecorated()
        Determines whether this StateObject is being decorated by another StateObject, which means the behavior is modified by the given one. return true if this StateObject is being decorated; false otherwise
      • isEquivalent

        boolean isEquivalent​(StateObject stateObject)
        Determines whether the given StateObject is equivalent to this one, i.e. the information of both StateObject is the same.
        Parameters:
        stateObject - The StateObject to compare its content to this one
        Returns:
        true if both object are equivalent; false otherwise
      • removePropertyChangeListener

        void removePropertyChangeListener​(java.lang.String propertyName,
                                          IPropertyChangeListener<?> listener)
        Unregisters the given IPropertyChangeListener that was registered for the specified property. The listener will no longer be notified when the property changes.
        Parameters:
        propertyName - The name of the property for which the listener was registered
        listener - The listener to unregister
        Throws:
        java.lang.NullPointerException - IPropertyChangeListener cannot be null
        java.lang.IllegalArgumentException - The listener was never registered with the property name
      • setParent

        void setParent​(StateObject parent)
        Sets the given StateObject to become the parent of this one.
        Parameters:
        parent - The new parent StateObject of this one, which cannot be null
      • toString

        void toString​(java.lang.Appendable writer)
        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.

        Important: If this StateObject is decorated by another one, then toString(Appendable) from that decorator is invoked, otherwise the information contained in this one will be printed out.

        Parameters:
        writer - The writer used to print out the string representation
        See Also:
        toText(Appendable)
      • toText

        void toText​(java.lang.Appendable writer)
        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.

        Important: Even if this StateObject is decorated by another one, the decorator will not be used to print out a string representation of this one.

        Parameters:
        writer - The writer used to print out the string representation
        See Also:
        toString(Appendable)