public class UpdateClauseStateObject extends AbstractModifyClauseStateObject implements ListHolderStateObject<UpdateItemStateObject>
UPDATE
clause of the UPDATE
statement.
An UPDATE
statement 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 the UPDATE
clause.
update_clause ::= UPDATE abstract_schema_name [[AS] identification_variable] SET update_item {, update_item}*
UpdateClause
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
UPDATE_ITEMS_LIST
Notify the list of
StateObjects representing the update items. |
Constructor and Description |
---|
UpdateClauseStateObject(UpdateStatementStateObject parent)
Creates a new
UpdateClauseStateObject . |
Modifier and Type | Method and Description |
---|---|
void |
accept(StateObjectVisitor visitor)
Visits this
StateObject by the given visitor . |
protected void |
addChildren(java.util.List<StateObject> children)
Adds the children of this
StateObject to the given list. |
UpdateItemStateObject |
addItem()
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.util.ListIterator<java.lang.String> paths,
StateObject newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.util.ListIterator<java.lang.String> paths,
java.lang.String newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.lang.String path)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.lang.String[] paths,
StateObject newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.lang.String[] paths,
java.lang.String newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.lang.String path,
StateObject newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(java.lang.String path,
java.lang.String newValue)
Adds a new
UPDATE item to this clause. |
UpdateItemStateObject |
addItem(UpdateItemStateObject item)
Adds the given
StateObject as a child of this one. |
void |
addItems(java.util.List<? extends UpdateItemStateObject> items)
Adds the given list of
StateObjects as children of this one. |
void |
addListChangeListener(java.lang.String listName,
IListChangeListener<UpdateItemStateObject> listener)
Registers the given
IListChangeListener for the specified list. |
protected boolean |
areChildrenEquivalent(UpdateClauseStateObject stateObject)
Determines whether the children of this
StateObject are equivalent to the children
of the given one, i.e. the information of the StateObjects is the same. |
boolean |
canMoveDown(UpdateItemStateObject item)
Determines whether the given
StateObject can be moved down by one position in the
list owned by its parent. |
boolean |
canMoveUp(UpdateItemStateObject item)
Determines whether the given
StateObject can be moved up by one position in the list
owned by its parent. |
UpdateClause |
getExpression()
Returns the actual parsed object if this
StateObject representation of the JPQL query
was created by parsing an existing JPQL query. |
java.lang.String |
getIdentifier()
Returns the JPQL identifier of this clause.
|
UpdateItemStateObject |
getItem(int index)
Returns the
StateObject at the given positions from the list |
UpdateStatementStateObject |
getParent()
Returns the parent of this
StateObject . |
boolean |
hasItems()
Determines whether this
StateObject has any children. |
protected void |
initialize()
Initializes this state object.
|
boolean |
isEquivalent(StateObject stateObject)
Determines whether the given
StateObject is equivalent to this one, i.e. the
information of both StateObject is the same. |
boolean |
isIdentificationVariableDefined()
Determines whether the identification variable has been defined.
|
ListIterable<UpdateItemStateObject> |
items()
Returns an
ListIterable over the children. |
int |
itemsSize()
Returns the number of children this list holder has.
|
UpdateItemStateObject |
moveDown(UpdateItemStateObject item)
Moves the given
StateObject down by one position in the list owned by its parent. |
UpdateItemStateObject |
moveUp(UpdateItemStateObject item)
Moves the given
StateObject up by one position in the list owned by its parent. |
void |
parse(java.lang.String jpqlFragment)
Parses the given fragment, which represents a single update item, and creates the
StateObject equivalent. |
void |
removeItem(UpdateItemStateObject stateObject)
Removes the given
StateObject from the list of children. |
void |
removeItems(java.util.Collection<UpdateItemStateObject> items)
Removes the given
StateObject from the list of children. |
void |
removeListChangeListener(java.lang.String listName,
IListChangeListener<UpdateItemStateObject> listener)
Unregisters the given
IListChangeListener that was registered for the specified list. |
void |
setExpression(UpdateClause expression)
Keeps a reference of the
parsed object object, which should only be
done when this object is instantiated during the conversion of a parsed JPQL query into
StateObjects . |
protected void |
toTextInternal(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. |
declarations, findManagedType, getAbstractSchemaName, getAbstractSchemaNameStateObject, getDeclaration, getEntity, getIdentificationVariable, getIdentificationVariableStateObject, getManagedType, getRangeVariableDeclaration, hasIdentificationVariable, setDeclaration, setDeclaration, setDeclaration, setDeclaration, setEntity, setEntityName, setIdentificationVariable
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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
public static final java.lang.String UPDATE_ITEMS_LIST
StateObjects
representing the update items.public UpdateClauseStateObject(UpdateStatementStateObject parent)
UpdateClauseStateObject
.parent
- The parent of this state object, which cannot be null
java.lang.NullPointerException
- The given parent cannot be null
public void accept(StateObjectVisitor visitor)
StateObject
by the given visitor
.accept
in interface StateObject
visitor
- The visitor
to visit this objectprotected void addChildren(java.util.List<StateObject> children)
StateObject
to the given list.addChildren
in class AbstractModifyClauseStateObject
children
- The list used to store the childrenpublic UpdateItemStateObject addItem()
UPDATE
item to this clause.UpdateItemStateObject
public UpdateItemStateObject addItem(java.util.ListIterator<java.lang.String> paths, StateObject newValue)
UPDATE
item to this clause.paths
- The paths of the value to updatenewValue
- The StateObject
representing the new valueUpdateItemStateObject
public UpdateItemStateObject addItem(java.util.ListIterator<java.lang.String> paths, java.lang.String newValue)
UPDATE
item to this clause.paths
- The paths of the value to updatenewValue
- The string representation of the new value to parse and to convert into a
StateObject
representationUpdateItemStateObject
public UpdateItemStateObject addItem(java.lang.String path)
UPDATE
item to this clause.path
- The path of the value to updateUpdateItemStateObject
public UpdateItemStateObject addItem(java.lang.String path, StateObject newValue)
UPDATE
item to this clause.path
- The path of the value to updatenewValue
- The StateObject
representing the new valueUpdateItemStateObject
public UpdateItemStateObject addItem(java.lang.String path, java.lang.String newValue)
UPDATE
item to this clause.path
- The path of the value to updatenewValue
- The string representation of the new value to parse and to convert into a
StateObject
representationUpdateItemStateObject
public UpdateItemStateObject addItem(java.lang.String[] paths, StateObject newValue)
UPDATE
item to this clause.paths
- The paths of the value to updatenewValue
- The StateObject
representing the new valueUpdateItemStateObject
public UpdateItemStateObject addItem(java.lang.String[] paths, java.lang.String newValue)
UPDATE
item to this clause.paths
- The paths of the value to updatenewValue
- The string representation of the new value to parse and to convert into a
StateObject
representationUpdateItemStateObject
public UpdateItemStateObject addItem(UpdateItemStateObject item)
StateObject
as a child of this one.addItem
in interface ListHolderStateObject<UpdateItemStateObject>
item
- The child StateObject
to become a child of this one
return The given itempublic void addItems(java.util.List<? extends UpdateItemStateObject> items)
StateObjects
as children of this one.addItems
in interface ListHolderStateObject<UpdateItemStateObject>
items
- The StateObjects
to become children of this onepublic void addListChangeListener(java.lang.String listName, IListChangeListener<UpdateItemStateObject> listener)
IListChangeListener
for the specified list. The listener will be
notified only when items are added, removed, moved from the list.addListChangeListener
in interface ListHolderStateObject<UpdateItemStateObject>
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 changesprotected boolean areChildrenEquivalent(UpdateClauseStateObject stateObject)
StateObject
are equivalent to the children
of the given one, i.e. the information of the StateObjects
is the same.stateObject
- The StateObject
to compare its children to this one's childrentrue
if both have equivalent children; false
otherwisepublic boolean canMoveDown(UpdateItemStateObject item)
StateObject
can be moved down by one position in the
list owned by its parent.canMoveDown
in interface ListHolderStateObject<UpdateItemStateObject>
item
- The StateObject
that could potentially be moved downtrue
if the object can be moved down by one unit; false
otherwisepublic boolean canMoveUp(UpdateItemStateObject item)
StateObject
can be moved up by one position in the list
owned by its parent.canMoveUp
in interface ListHolderStateObject<UpdateItemStateObject>
item
- The StateObject
that could potentially be moved uptrue
if the object can be moved up by one unit; false
otherwisepublic UpdateClause getExpression()
StateObject
representation of the JPQL query
was created by parsing an existing JPQL query.getExpression
in interface StateObject
getExpression
in class AbstractStateObject
StateObject
or null
when the JPQL query is manually created (i.e. not from a string)public java.lang.String getIdentifier()
getIdentifier
in class AbstractModifyClauseStateObject
public UpdateItemStateObject getItem(int index)
StateObject
at the given positions from the listgetItem
in interface ListHolderStateObject<UpdateItemStateObject>
index
- The position of the StateObject
to retrieveStateObject
at the given positionpublic UpdateStatementStateObject getParent()
StateObject
.getParent
in interface StateObject
getParent
in class AbstractModifyClauseStateObject
StateObject
, which is null
only when
this is the root of the hierarchypublic boolean hasItems()
StateObject
has any children.hasItems
in interface ListHolderStateObject<UpdateItemStateObject>
true
if this StateObject
has children; false
otherwiseprotected void initialize()
initialize
in class AbstractModifyClauseStateObject
public boolean isEquivalent(StateObject stateObject)
StateObject
is equivalent to this one, i.e. the
information of both StateObject
is the same.isEquivalent
in interface StateObject
isEquivalent
in class AbstractModifyClauseStateObject
stateObject
- The StateObject
to compare its content to this onetrue
if both object are equivalent; false
otherwisepublic boolean isIdentificationVariableDefined()
true
if the identification variable has been specified; false
otherwise, which means it has been generated based on the abstract schema namepublic ListIterable<UpdateItemStateObject> items()
ListIterable
over the children.items
in interface ListHolderStateObject<UpdateItemStateObject>
ListIterable
that is iterating over the childrenpublic int itemsSize()
itemsSize
in interface ListHolderStateObject<UpdateItemStateObject>
StateObjects
that are children of this onepublic UpdateItemStateObject moveDown(UpdateItemStateObject item)
StateObject
down by one position in the list owned by its parent.moveDown
in interface ListHolderStateObject<UpdateItemStateObject>
item
- The StateObject
to move down in the listpublic UpdateItemStateObject moveUp(UpdateItemStateObject item)
StateObject
up by one position in the list owned by its parent.moveUp
in interface ListHolderStateObject<UpdateItemStateObject>
item
- The StateObject
to move up in the listpublic void parse(java.lang.String jpqlFragment)
StateObject
equivalent.jpqlFragment
- The portion of the query representing a single update itempublic void removeItem(UpdateItemStateObject stateObject)
StateObject
from the list of children.removeItem
in interface ListHolderStateObject<UpdateItemStateObject>
stateObject
- The child StateObject
to not longer be a childpublic void removeItems(java.util.Collection<UpdateItemStateObject> items)
StateObject
from the list of children.removeItems
in interface ListHolderStateObject<UpdateItemStateObject>
items
- The StateObjects
to remove from this onepublic void removeListChangeListener(java.lang.String listName, IListChangeListener<UpdateItemStateObject> listener)
IListChangeListener
that was registered for the specified list.
The listener will no longer be notified only when items are added, removed, moved from the
list.removeListChangeListener
in interface ListHolderStateObject<UpdateItemStateObject>
listName
- The name of the list for which the listener was registeredlistener
- The listener to unregisterpublic void setExpression(UpdateClause expression)
parsed object
object, which should only be
done when this object is instantiated during the conversion of a parsed JPQL query into
StateObjects
.expression
- The parsed object
representing an UPDATE
clauseprotected void toTextInternal(java.lang.Appendable writer) throws java.io.IOException
StateObject
, which should not be used to
define a true
string representation of a JPQL query but should be used for
debugging purposes.toTextInternal
in class AbstractModifyClauseStateObject
writer
- The writer used to print out the string representationjava.io.IOException
- This should never happens, it is only required because Appendable
is used instead of any concrete class