Class AbstractModifyClauseStateObject

    • Constructor Detail

      • AbstractModifyClauseStateObject

        protected AbstractModifyClauseStateObject​(AbstractModifyStatementStateObject parent)
        Creates a new UpdateClauseStateObject.
        Parameters:
        parent - The parent of this state object
    • Method Detail

      • findManagedType

        public IManagedType findManagedType​(StateObject stateObject)
        Returns the IManagedType for the given identification variable. If the declaration is for a subquery and there is no managed type associated with the identification then the search will traverse up the query hierarchy.
        SELECT e FROM Department d JOIN KEY(d.employees).addresses a
        In the above query, the managed type associated with the identification variable:
        • d is "Department"
        • a is "Address"
        Specified by:
        findManagedType in interface DeclarationStateObject
        Parameters:
        stateObject - The StateObject that should be an simple identification variable or an encapsulated identification variable with the identifier KEY or VALUE
        Returns:
        The IManagedType representing the domain object declared by the given identification variable
        See Also:
        DeclarationStateObject.getManagedType(StateObject)
      • getAbstractSchemaName

        public java.lang.String getAbstractSchemaName()
        Returns the abstract schema name.
        Returns:
        The name of the abstract schema type for which the identification variable is ranging over
      • getDeclaration

        public DeclarationStateObject getDeclaration()
        Returns the declaration clause which defines the domain of the query by declaring identification variables.
        Specified by:
        getDeclaration in interface StateObject
        Overrides:
        getDeclaration in class AbstractStateObject
        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
      • getEntity

        public IEntity getEntity()
        Returns the actual IEntity that has the abstract schema name.
        Returns:
        The actual IEntity or null if no entity exists
      • getIdentificationVariable

        public java.lang.String getIdentificationVariable()
        Returns the identification variable name that is ranging over the abstract schema type.
        Returns:
        The identification variable name
      • getIdentifier

        public abstract java.lang.String getIdentifier()
        Returns the JPQL identifier of this clause.
        Returns:
        The JPQL identifier
      • getManagedType

        public IManagedType getManagedType​(StateObject stateObject)
        Returns the IManagedType for the given identification variable. The search does not traverse up the query hierarchy if this declaration is for a subquery.
        SELECT e FROM Department d JOIN KEY(d.employees).addresses a
        In the above query, the managed type associated with the identification variable:
        • d is "Department"
        • a is "Address"
        Specified by:
        getManagedType in interface DeclarationStateObject
        Parameters:
        stateObject - The StateObject that should be an simple identification variable or an encapsulated identification variable with the identifier KEY or VALUE
        Returns:
        The IManagedType representing the domain object declared by the given identification variable
        See Also:
        DeclarationStateObject.findManagedType(StateObject)
      • hasIdentificationVariable

        public boolean hasIdentificationVariable()
        Determines whether an identification variable was defined.
        Returns:
        true if an identification variable is defined; false otherwise
      • setDeclaration

        public void setDeclaration​(IEntity entity)
        Sets the abstract schema name to the given value.
        Parameters:
        entity - The IEntity that this clause will range over
      • setDeclaration

        public void setDeclaration​(IEntity entity,
                                   java.lang.String identificationVariable)
        Sets the abstract schema name to the given value and the identification variable that will range over it.
        Parameters:
        entity - The IEntity that this clause will range over
        identificationVariable - The new identification variable
      • setDeclaration

        public void setDeclaration​(java.lang.String abstractSchemaName)
        Sets the abstract schema name to the given value and removes the identification variable.
        Parameters:
        abstractSchemaName - The name of the abstract schema, which is the name of the entity
      • setDeclaration

        public void setDeclaration​(java.lang.String abstractSchemaName,
                                   java.lang.String identificationVariable)
        Sets the abstract schema name to the given value and the identification variable that will range over it.
        Parameters:
        abstractSchemaName - The name of the abstract schema, which is the name of the entity
        identificationVariable - The new identification variable
      • setEntity

        public void setEntity​(IEntity entity)
        Sets the actual IEntity and updates the abstract schema name.
        Parameters:
        entity - The IEntity that this clause will range over
      • setEntityName

        public void setEntityName​(java.lang.String entityName)
        Sets the name of the abstract schema, which is the name of the entity.
        Parameters:
        entityName - The name of the entity
      • setIdentificationVariable

        public void setIdentificationVariable​(java.lang.String identificationVariable)
        Sets the new identification variable that will range over the abstract schema name.
        Parameters:
        identificationVariable - The new identification variable
      • 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