EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model.query
Class UpdateClauseStateObject

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractStateObject
      extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractModifyClauseStateObject
          extended by org.eclipse.persistence.jpa.jpql.model.query.UpdateClauseStateObject
All Implemented Interfaces:
DeclarationStateObject, ListHolderStateObject<UpdateItemStateObject>, StateObject

public class UpdateClauseStateObject
extends AbstractModifyClauseStateObject
implements ListHolderStateObject<UpdateItemStateObject>

This is the 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.

BNF: update_clause ::= UPDATE abstract_schema_name [[AS] identification_variable] SET update_item {, update_item}*

Version:
2.4
See Also:
UpdateClause
Author:
Pascal Filion
Since:
2.4

Field Summary
static java.lang.String UPDATE_ITEMS_LIST
          Notify the list of StateObjects representing the update items.
 
Constructor Summary
UpdateClauseStateObject(UpdateStatementStateObject parent)
          Creates a new UpdateClauseStateObject.
 
Method Summary
 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.
 IterableListIterator<UpdateItemStateObject> items()
          Returns an IterableListIterator 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.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.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.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.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 java.lang.String UPDATE_ITEMS_LIST
Notify the list of StateObjects representing the update items.

See Also:
Constant Field Values
Constructor Detail

UpdateClauseStateObject

public UpdateClauseStateObject(UpdateStatementStateObject parent)
Creates a new UpdateClauseStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
Throws:
java.lang.NullPointerException - The given parent cannot be null
Method Detail

accept

public void accept(StateObjectVisitor visitor)
Visits this StateObject by the given visitor.

Specified by:
accept in interface StateObject
Parameters:
visitor - The visitor to visit this object

addChildren

protected void addChildren(java.util.List<StateObject> children)
Adds the children of this StateObject to the given list.

Overrides:
addChildren in class AbstractModifyClauseStateObject
Parameters:
children - The list used to store the children

addItem

public UpdateItemStateObject addItem()
Adds a new UPDATE item to this clause.

Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.util.ListIterator<java.lang.String> paths,
                                     StateObject newValue)
Adds a new UPDATE item to this clause.

Parameters:
paths - The paths of the value to update
newValue - The StateObject representing the new value
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.util.ListIterator<java.lang.String> paths,
                                     java.lang.String newValue)
Adds a new UPDATE item to this clause.

Parameters:
paths - The paths of the value to update
newValue - The string representation of the new value to parse and to convert into a StateObject representation
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.lang.String path)
Adds a new UPDATE item to this clause.

Parameters:
path - The path of the value to update
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.lang.String path,
                                     StateObject newValue)
Adds a new UPDATE item to this clause.

Parameters:
path - The path of the value to update
newValue - The StateObject representing the new value
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.lang.String path,
                                     java.lang.String newValue)
Adds a new UPDATE item to this clause.

Parameters:
path - The path of the value to update
newValue - The string representation of the new value to parse and to convert into a StateObject representation
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.lang.String[] paths,
                                     StateObject newValue)
Adds a new UPDATE item to this clause.

Parameters:
paths - The paths of the value to update
newValue - The StateObject representing the new value
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(java.lang.String[] paths,
                                     java.lang.String newValue)
Adds a new UPDATE item to this clause.

Parameters:
paths - The paths of the value to update
newValue - The string representation of the new value to parse and to convert into a StateObject representation
Returns:
The newly added UpdateItemStateObject

addItem

public UpdateItemStateObject addItem(UpdateItemStateObject item)
Adds the given StateObject as a child of this one.

Specified by:
addItem in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
item - The child StateObject to become a child of this one return The given item

addItems

public void addItems(java.util.List<? extends UpdateItemStateObject> items)
Adds the given list of StateObjects as children of this one.

Specified by:
addItems in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
items - The StateObjects to become children of this one

addListChangeListener

public void addListChangeListener(java.lang.String listName,
                                  IListChangeListener<UpdateItemStateObject> listener)
Registers the given IListChangeListener for the specified list. The listener will be notified only when items are added, removed, moved from the list.

Specified by:
addListChangeListener in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
listName - The name of the list for which the listener will be notified when the content of the list has changed
listener - The listener to be notified upon changes

areChildrenEquivalent

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.

Parameters:
stateObject - The StateObject to compare its children to this one's children
Returns:
true if both have equivalent children; false otherwise

canMoveDown

public boolean canMoveDown(UpdateItemStateObject item)
Determines whether the given StateObject can be moved down by one position in the list owned by its parent.

Specified by:
canMoveDown in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
item - The StateObject that could potentially be moved down
Returns:
true if the object can be moved down by one unit; false otherwise

canMoveUp

public boolean canMoveUp(UpdateItemStateObject item)
Determines whether the given StateObject can be moved up by one position in the list owned by its parent.

Specified by:
canMoveUp in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
item - The StateObject that could potentially be moved up
Returns:
true if the object can be moved up by one unit; false otherwise

getExpression

public UpdateClause getExpression()
Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.

Specified by:
getExpression in interface StateObject
Overrides:
getExpression in class AbstractStateObject
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)

getIdentifier

public java.lang.String getIdentifier()
Returns the JPQL identifier of this clause.

Specified by:
getIdentifier in class AbstractModifyClauseStateObject
Returns:
The JPQL identifier

getItem

public UpdateItemStateObject getItem(int index)
Returns the StateObject at the given positions from the list

Specified by:
getItem in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
index - The position of the StateObject to retrieve
Returns:
The StateObject at the given position

getParent

public UpdateStatementStateObject getParent()
Returns the parent of this StateObject.

Specified by:
getParent in interface StateObject
Overrides:
getParent in class AbstractModifyClauseStateObject
Returns:
Returns the parent of this StateObject, which is null only when this is the root of the hierarchy

hasItems

public boolean hasItems()
Determines whether this StateObject has any children.

Specified by:
hasItems in interface ListHolderStateObject<UpdateItemStateObject>
Returns:
true if this StateObject has children; false otherwise

initialize

protected void initialize()
Initializes this state object.

Overrides:
initialize in class AbstractModifyClauseStateObject

isEquivalent

public boolean isEquivalent(StateObject stateObject)
Determines whether the given StateObject is equivalent to this one, i.e. the information of both StateObject is the same.

Specified by:
isEquivalent in interface StateObject
Overrides:
isEquivalent in class AbstractModifyClauseStateObject
Parameters:
stateObject - The StateObject to compare its content to this one
Returns:
true if both object are equivalent; false otherwise

isIdentificationVariableDefined

public boolean isIdentificationVariableDefined()
Determines whether the identification variable has been defined.

Returns:
true if the identification variable has been specified; false otherwise, which means it has been generated based on the abstract schema name

items

public IterableListIterator<UpdateItemStateObject> items()
Returns an IterableListIterator over the children.

Specified by:
items in interface ListHolderStateObject<UpdateItemStateObject>
Returns:
An IterableListIterator that is iterating over the children

itemsSize

public int itemsSize()
Returns the number of children this list holder has.

Specified by:
itemsSize in interface ListHolderStateObject<UpdateItemStateObject>
Returns:
The count of StateObjects that are children of this one

moveDown

public UpdateItemStateObject moveDown(UpdateItemStateObject item)
Moves the given StateObject down by one position in the list owned by its parent.

Specified by:
moveDown in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
item - The StateObject to move down in the list
Returns:
The given item

moveUp

public UpdateItemStateObject moveUp(UpdateItemStateObject item)
Moves the given StateObject up by one position in the list owned by its parent.

Specified by:
moveUp in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
item - The StateObject to move up in the list
Returns:
The given item

parse

public void parse(java.lang.String jpqlFragment)
Parses the given fragment, which represents a single update item, and creates the StateObject equivalent.

Parameters:
jpqlFragment - The portion of the query representing a single update item

removeItem

public void removeItem(UpdateItemStateObject stateObject)
Removes the given StateObject from the list of children.

Specified by:
removeItem in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
stateObject - The child StateObject to not longer be a child

removeItems

public void removeItems(java.util.Collection<UpdateItemStateObject> items)
Removes the given StateObject from the list of children.

Specified by:
removeItems in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
items - The StateObjects to remove from this one

removeListChangeListener

public void removeListChangeListener(java.lang.String listName,
                                     IListChangeListener<UpdateItemStateObject> listener)
Unregisters the given 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.

Specified by:
removeListChangeListener in interface ListHolderStateObject<UpdateItemStateObject>
Parameters:
listName - The name of the list for which the listener was registered
listener - The listener to unregister

setExpression

public 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.

Parameters:
expression - The parsed object representing an UPDATE clause

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.

Overrides:
toTextInternal in class AbstractModifyClauseStateObject
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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference