Interface StateObject

    • Method Detail

      • 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
      • 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​(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​(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)