Class UpdateClauseStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractModifyClauseStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.UpdateClauseStateObject
-
- All Implemented Interfaces:
DeclarationStateObject,ListHolderStateObject<UpdateItemStateObject>,StateObject
public class UpdateClauseStateObject extends AbstractModifyClauseStateObject implements ListHolderStateObject<UpdateItemStateObject>
This is theUPDATEclause of theUPDATEstatement.An
UPDATEstatement provides bulk operations over sets of entities of a single entity class (together with its subclasses, if any). Only one entity abstract schema type may be specified in theUPDATEclause.BNF:update_clause ::= UPDATE abstract_schema_name [[AS] identification_variable] SET update_item {, update_item}*- Since:
- 2.4
- Version:
- 2.5
- Author:
- Pascal Filion
- See Also:
UpdateClause
-
-
Field Summary
Fields Modifier and Type Field Description static StringUPDATE_ITEMS_LISTNotify the list ofStateObjectsrepresenting the update items.
-
Constructor Summary
Constructors Constructor Description UpdateClauseStateObject(UpdateStatementStateObject parent)Creates a newUpdateClauseStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.protected voidaddChildren(List<StateObject> children)Adds the children of thisStateObjectto the given list.UpdateItemStateObjectaddItem()Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(String path)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(String[] paths, String newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(String[] paths, StateObject newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(String path, String newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(String path, StateObject newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(ListIterator<String> paths, String newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(ListIterator<String> paths, StateObject newValue)Adds a newUPDATEitem to this clause.UpdateItemStateObjectaddItem(UpdateItemStateObject item)Adds the givenStateObjectas a child of this one.voidaddItems(List<? extends UpdateItemStateObject> items)Adds the given list ofStateObjectsas children of this one.voidaddListChangeListener(String listName, IListChangeListener<UpdateItemStateObject> listener)Registers the givenIListChangeListenerfor the specified list.protected booleanareChildrenEquivalent(UpdateClauseStateObject stateObject)Determines whether the children of thisStateObjectare equivalent to the children of the given one, i.e.booleancanMoveDown(UpdateItemStateObject item)Determines whether the givenStateObjectcan be moved down by one position in the list owned by its parent.booleancanMoveUp(UpdateItemStateObject item)Determines whether the givenStateObjectcan be moved up by one position in the list owned by its parent.UpdateClausegetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.StringgetIdentifier()Returns the JPQL identifier of this clause.UpdateItemStateObjectgetItem(int index)Returns theStateObjectat the given positions from the listUpdateStatementStateObjectgetParent()Returns the parent of thisStateObject.booleanhasItems()Determines whether thisStateObjecthas any children.protected voidinitialize()Initializes this state object.booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e.booleanisIdentificationVariableDefined()Determines whether the identification variable has been defined.ListIterable<UpdateItemStateObject>items()Returns anListIterableover the children.intitemsSize()Returns the number of children this list holder has.UpdateItemStateObjectmoveDown(UpdateItemStateObject item)Moves the givenStateObjectdown by one position in the list owned by its parent.UpdateItemStateObjectmoveUp(UpdateItemStateObject item)Moves the givenStateObjectup by one position in the list owned by its parent.voidparse(String jpqlFragment)Parses the given fragment, which represents a single update item, and creates theStateObjectequivalent.voidremoveItem(UpdateItemStateObject stateObject)Removes the givenStateObjectfrom the list of children.voidremoveItems(Collection<UpdateItemStateObject> items)Removes the givenStateObjectfrom the list of children.voidremoveListChangeListener(String listName, IListChangeListener<UpdateItemStateObject> listener)Unregisters the givenIListChangeListenerthat was registered for the specified list.voidsetExpression(UpdateClause expression)Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.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.AbstractModifyClauseStateObject
declarations, findManagedType, getAbstractSchemaName, getAbstractSchemaNameStateObject, getDeclaration, getEntity, getIdentificationVariable, getIdentificationVariableStateObject, getManagedType, getRangeVariableDeclaration, hasIdentificationVariable, setDeclaration, setDeclaration, setDeclaration, setDeclaration, setEntity, setEntityName, setIdentificationVariable
-
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, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
-
-
-
Field Detail
-
UPDATE_ITEMS_LIST
public static final String UPDATE_ITEMS_LIST
Notify the list ofStateObjectsrepresenting the update items.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
UpdateClauseStateObject
public UpdateClauseStateObject(UpdateStatementStateObject parent)
Creates a newUpdateClauseStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Description copied from interface:StateObjectVisits thisStateObjectby the givenvisitor.- Specified by:
acceptin interfaceStateObject- Parameters:
visitor- Thevisitorto visit this object
-
addChildren
protected void addChildren(List<StateObject> children)
Description copied from class:AbstractStateObjectAdds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractModifyClauseStateObject- Parameters:
children- The list used to store the children
-
addItem
public UpdateItemStateObject addItem()
Adds a newUPDATEitem to this clause.- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(ListIterator<String> paths, StateObject newValue)
Adds a newUPDATEitem to this clause.- Parameters:
paths- The paths of the value to updatenewValue- TheStateObjectrepresenting the new value- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(ListIterator<String> paths, String newValue)
Adds a newUPDATEitem to this clause.- Parameters:
paths- The paths of the value to updatenewValue- The string representation of the new value to parse and to convert into aStateObjectrepresentation- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(String path)
Adds a newUPDATEitem to this clause.- Parameters:
path- The path of the value to update- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(String path, StateObject newValue)
Adds a newUPDATEitem to this clause.- Parameters:
path- The path of the value to updatenewValue- TheStateObjectrepresenting the new value- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(String path, String newValue)
Adds a newUPDATEitem to this clause.- Parameters:
path- The path of the value to updatenewValue- The string representation of the new value to parse and to convert into aStateObjectrepresentation- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(String[] paths, StateObject newValue)
Adds a newUPDATEitem to this clause.- Parameters:
paths- The paths of the value to updatenewValue- TheStateObjectrepresenting the new value- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(String[] paths, String newValue)
Adds a newUPDATEitem to this clause.- Parameters:
paths- The paths of the value to updatenewValue- The string representation of the new value to parse and to convert into aStateObjectrepresentation- Returns:
- The newly added
UpdateItemStateObject
-
addItem
public UpdateItemStateObject addItem(UpdateItemStateObject item)
Description copied from interface:ListHolderStateObjectAdds the givenStateObjectas a child of this one.- Specified by:
addItemin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
item- The childStateObjectto become a child of this one return The given item
-
addItems
public void addItems(List<? extends UpdateItemStateObject> items)
Description copied from interface:ListHolderStateObjectAdds the given list ofStateObjectsas children of this one.- Specified by:
addItemsin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
items- TheStateObjectsto become children of this one
-
addListChangeListener
public void addListChangeListener(String listName, IListChangeListener<UpdateItemStateObject> listener)
Description copied from interface:ListHolderStateObjectRegisters the givenIListChangeListenerfor the specified list. The listener will be notified only when items are added, removed, moved from the list.- Specified by:
addListChangeListenerin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
listName- The name of the list for which the listener will be notified when the content of the list has changedlistener- The listener to be notified upon changes
-
areChildrenEquivalent
protected boolean areChildrenEquivalent(UpdateClauseStateObject stateObject)
Determines whether the children of thisStateObjectare equivalent to the children of the given one, i.e. the information of theStateObjectsis the same.- Parameters:
stateObject- TheStateObjectto compare its children to this one's children- Returns:
trueif both have equivalent children;falseotherwise
-
canMoveDown
public boolean canMoveDown(UpdateItemStateObject item)
Description copied from interface:ListHolderStateObjectDetermines whether the givenStateObjectcan be moved down by one position in the list owned by its parent.- Specified by:
canMoveDownin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
item- TheStateObjectthat could potentially be moved down- Returns:
trueif the object can be moved down by one unit;falseotherwise
-
canMoveUp
public boolean canMoveUp(UpdateItemStateObject item)
Description copied from interface:ListHolderStateObjectDetermines whether the givenStateObjectcan be moved up by one position in the list owned by its parent.- Specified by:
canMoveUpin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
item- TheStateObjectthat could potentially be moved up- Returns:
trueif the object can be moved up by one unit;falseotherwise
-
getExpression
public UpdateClause getExpression()
Description copied from interface:StateObjectReturns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getIdentifier
public String getIdentifier()
Description copied from class:AbstractModifyClauseStateObjectReturns the JPQL identifier of this clause.- Specified by:
getIdentifierin classAbstractModifyClauseStateObject- Returns:
- The JPQL identifier
-
getItem
public UpdateItemStateObject getItem(int index)
Description copied from interface:ListHolderStateObjectReturns theStateObjectat the given positions from the list- Specified by:
getItemin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
index- The position of theStateObjectto retrieve- Returns:
- The
StateObjectat the given position
-
getParent
public UpdateStatementStateObject getParent()
Description copied from interface:StateObjectReturns the parent of thisStateObject.- Specified by:
getParentin interfaceStateObject- Overrides:
getParentin classAbstractModifyClauseStateObject- Returns:
- Returns the parent of this
StateObject, which isnullonly when this is the root of the hierarchy
-
hasItems
public boolean hasItems()
Description copied from interface:ListHolderStateObjectDetermines whether thisStateObjecthas any children.- Specified by:
hasItemsin interfaceListHolderStateObject<UpdateItemStateObject>- Returns:
trueif thisStateObjecthas children;falseotherwise
-
initialize
protected void initialize()
Description copied from class:AbstractStateObjectInitializes this state object.- Overrides:
initializein classAbstractModifyClauseStateObject
-
isEquivalent
public boolean isEquivalent(StateObject stateObject)
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 classAbstractModifyClauseStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
isIdentificationVariableDefined
public boolean isIdentificationVariableDefined()
Determines whether the identification variable has been defined.- Returns:
trueif the identification variable has been specified;falseotherwise, which means it has been generated based on the abstract schema name
-
items
public ListIterable<UpdateItemStateObject> items()
Description copied from interface:ListHolderStateObjectReturns anListIterableover the children.- Specified by:
itemsin interfaceListHolderStateObject<UpdateItemStateObject>- Returns:
- An
ListIterablethat is iterating over the children
-
itemsSize
public int itemsSize()
Description copied from interface:ListHolderStateObjectReturns the number of children this list holder has.- Specified by:
itemsSizein interfaceListHolderStateObject<UpdateItemStateObject>- Returns:
- The count of
StateObjectsthat are children of this one
-
moveDown
public UpdateItemStateObject moveDown(UpdateItemStateObject item)
Description copied from interface:ListHolderStateObjectMoves the givenStateObjectdown by one position in the list owned by its parent.- Specified by:
moveDownin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
item- TheStateObjectto move down in the list- Returns:
- The given item
-
moveUp
public UpdateItemStateObject moveUp(UpdateItemStateObject item)
Description copied from interface:ListHolderStateObjectMoves the givenStateObjectup by one position in the list owned by its parent.- Specified by:
moveUpin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
item- TheStateObjectto move up in the list- Returns:
- The given item
-
parse
public void parse(String jpqlFragment)
Parses the given fragment, which represents a single update item, and creates theStateObjectequivalent.- Parameters:
jpqlFragment- The portion of the query representing a single update item
-
removeItem
public void removeItem(UpdateItemStateObject stateObject)
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
stateObject- The childStateObjectto not longer be a child
-
removeItems
public void removeItems(Collection<UpdateItemStateObject> items)
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemsin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
items- TheStateObjectsto remove from this one
-
removeListChangeListener
public void removeListChangeListener(String listName, IListChangeListener<UpdateItemStateObject> listener)
Description copied from interface:ListHolderStateObjectUnregisters the givenIListChangeListenerthat 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:
removeListChangeListenerin interfaceListHolderStateObject<UpdateItemStateObject>- Parameters:
listName- The name of the list for which the listener was registeredlistener- The listener to unregister
-
setExpression
public void setExpression(UpdateClause expression)
Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting anUPDATEclause
-
toTextInternal
protected void toTextInternal(Appendable writer) throws IOException
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.- Overrides:
toTextInternalin classAbstractModifyClauseStateObject- 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
-
-