Class AbstractModifyClauseStateObject
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractModifyClauseStateObject
- All Implemented Interfaces:
DeclarationStateObject,StateObject
- Direct Known Subclasses:
DeleteClauseStateObject,UpdateClauseStateObject
public abstract class AbstractModifyClauseStateObject
extends AbstractStateObject
implements DeclarationStateObject
- Since:
- 2.4
- Version:
- 2.5
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a newUpdateClauseStateObject. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddChildren(List<StateObject> children) Adds the children of thisStateObjectto the given list.Returns the list of declarations declared in the declaration clause of the current query.findManagedType(StateObject stateObject) Returns theIManagedTypefor the given identification variable.Returns the abstract schema name.Returns theAbstractSchemaNameStateObjectholding onto the abstract schema name.Returns the declaration clause which defines the domain of the query by declaring identification variables.Returns the actualIEntitythat has the abstract schema name.Returns the identification variable name that is ranging over the abstract schema type.Returns theIdentificationVariableStateObjectholding onto the identification variable.abstract StringReturns the JPQL identifier of this clause.getManagedType(StateObject stateObject) Returns theIManagedTypefor the given identification variable.Returns the parent of thisStateObject.Returns theStateObjectthat defines the range variable declaration.booleanDetermines whether an identification variable was defined.protected voidInitializes this state object.booleanisEquivalent(StateObject stateObject) Determines whether the givenStateObjectis equivalent to this one, i.e.voidsetDeclaration(String abstractSchemaName) Sets the abstract schema name to the given value and removes the identification variable.voidsetDeclaration(String abstractSchemaName, String identificationVariable) Sets the abstract schema name to the given value and the identification variable that will range over it.voidsetDeclaration(IEntity entity) Sets the abstract schema name to the given value.voidsetDeclaration(IEntity entity, String identificationVariable) Sets the abstract schema name to the given value and the identification variable that will range over it.voidSets the actualIEntityand updates the abstract schema name.voidsetEntityName(String entityName) Sets the name of the abstract schema, which is the name of the entity.voidsetIdentificationVariable(String identificationVariable) Sets the new identification variable that will range over the abstract schema name.protected voidtoTextInternal(Appendable writer) Prints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
acceptUnknownVisitor, acceptUnknownVisitor, addProblems, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, findIdentificationVariable, firePropertyChanged, getChangeSupport, getDecorator, getExpression, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toTextMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
accept, addPropertyChangeListener, children, decorate, findIdentificationVariable, getDecorator, getExpression, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
Constructor Details
-
AbstractModifyClauseStateObject
Creates a newUpdateClauseStateObject.- Parameters:
parent- The parent of this state object
-
-
Method Details
-
addChildren
Description copied from class:AbstractStateObjectAdds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
declarations
Description copied from interface:DeclarationStateObjectReturns the list of declarations declared in the declaration clause of the current query.- Specified by:
declarationsin interfaceDeclarationStateObject- Returns:
- The list of
VariableDeclarationStateObjectthat define the domain of the query
-
findManagedType
Description copied from interface:DeclarationStateObjectReturns theIManagedTypefor 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.
In the above query, the managed type associated with the identification variable:SELECT e FROM Department d JOIN KEY(d.employees).addresses a- d is "Department"
- a is "Address"
- Specified by:
findManagedTypein interfaceDeclarationStateObject- Parameters:
stateObject- TheStateObjectthat should be an simple identification variable or an encapsulated identification variable with the identifierKEYorVALUE- Returns:
- The
IManagedTyperepresenting the domain object declared by the given identification variable - See Also:
-
getAbstractSchemaName
Returns the abstract schema name.- Returns:
- The name of the abstract schema type for which the identification variable is ranging over
-
getAbstractSchemaNameStateObject
Returns theAbstractSchemaNameStateObjectholding onto the abstract schema name.- Returns:
- The
AbstractSchemaNameStateObject, which is nevernull
-
getDeclaration
Description copied from interface:StateObjectReturns the declaration clause which defines the domain of the query by declaring identification variables.- Specified by:
getDeclarationin interfaceStateObject- Overrides:
getDeclarationin classAbstractStateObject- Returns:
- The declaration clause of which this
StateObjectis 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
Returns the actualIEntitythat has the abstract schema name.- Returns:
- The actual
IEntityornullif no entity exists
-
getIdentificationVariable
Returns the identification variable name that is ranging over the abstract schema type.- Returns:
- The identification variable name
-
getIdentificationVariableStateObject
Returns theIdentificationVariableStateObjectholding onto the identification variable.- Returns:
- The
IdentificationVariableStateObject, which is nevernull
-
getIdentifier
Returns the JPQL identifier of this clause.- Returns:
- The JPQL identifier
-
getManagedType
Description copied from interface:DeclarationStateObjectReturns theIManagedTypefor the given identification variable. The search does not traverse up the query hierarchy if this declaration is for a subquery.
In the above query, the managed type associated with the identification variable:SELECT e FROM Department d JOIN KEY(d.employees).addresses a- d is "Department"
- a is "Address"
- Specified by:
getManagedTypein interfaceDeclarationStateObject- Parameters:
stateObject- TheStateObjectthat should be an simple identification variable or an encapsulated identification variable with the identifierKEYorVALUE- Returns:
- The
IManagedTyperepresenting the domain object declared by the given identification variable - See Also:
-
getParent
Description copied from interface:StateObjectReturns the parent of thisStateObject.- Specified by:
getParentin interfaceStateObject- Overrides:
getParentin classAbstractStateObject- Returns:
- Returns the parent of this
StateObject, which isnullonly when this is the root of the hierarchy
-
getRangeVariableDeclaration
Returns theStateObjectthat defines the range variable declaration.- Returns:
- The
StateObjectthat defines the range variable declaration, which is nevernull
-
hasIdentificationVariable
public boolean hasIdentificationVariable()Determines whether an identification variable was defined.- Returns:
trueif an identification variable is defined;falseotherwise
-
initialize
protected void initialize()Description copied from class:AbstractStateObjectInitializes this state object.- Overrides:
initializein classAbstractStateObject
-
isEquivalent
Description copied from interface:StateObjectDetermines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
setDeclaration
Sets the abstract schema name to the given value.- Parameters:
entity- TheIEntitythat this clause will range over
-
setDeclaration
Sets the abstract schema name to the given value and the identification variable that will range over it.- Parameters:
entity- TheIEntitythat this clause will range overidentificationVariable- The new identification variable
-
setDeclaration
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
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 entityidentificationVariable- The new identification variable
-
setEntity
Sets the actualIEntityand updates the abstract schema name.- Parameters:
entity- TheIEntitythat this clause will range over
-
setEntityName
Sets the name of the abstract schema, which is the name of the entity.- Parameters:
entityName- The name of the entity
-
setIdentificationVariable
Sets the new identification variable that will range over the abstract schema name.- Parameters:
identificationVariable- The new identification variable
-
toTextInternal
Description copied from class:AbstractStateObjectPrints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextInternalin classAbstractStateObject- Parameters:
writer- The writer used to print out the string representation- Throws:
IOException- This should never happens, it is only required becauseAppendableis used instead of any concrete class
-