public class CollectionChangeRecord extends DeferrableChangeRecord implements CollectionChangeRecord
Purpose: This class holds the record of the changes made to a collection attribute of an object.
Description: Collections must be compared to each other and added and removed objects must be recorded separately.
Constructor and Description |
---|
CollectionChangeRecord()
This default constructor.
|
CollectionChangeRecord(ObjectChangeSet owner)
Constructor for the ChangeRecord representing a collection mapping
|
Modifier and Type | Method and Description |
---|---|
void |
addAdditionChange(java.util.Map objectChanges,
ContainerPolicy cp,
UnitOfWorkChangeSet changeSet,
AbstractSession session)
This method takes a Map of objects, converts these into ObjectChangeSets.
|
void |
addOrderedAdditionChange(java.util.List<java.lang.Object> orderedObjectsToAdd,
java.util.Map<java.lang.Object,java.lang.Integer> objectChangesIndices,
UnitOfWorkChangeSet changeSet,
AbstractSession session)
This method takes a list of objects and converts them into
ObjectChangeSets.
|
void |
addOrderedRemoveChange(java.util.List<java.lang.Integer> indicesToRemove,
java.util.Map objectChanges,
UnitOfWorkChangeSet changeSet,
AbstractSession session)
This method takes a map of objects and converts them into
ObjectChangeSets.
|
void |
addRemoveChange(java.util.Map objectChanges,
ContainerPolicy cp,
UnitOfWorkChangeSet changeSet,
AbstractSession session)
This method takes a Map of objects, converts these into ObjectChangeSets.
|
void |
clearChanges()
Clears info about added / removed objects set by change tracker.
|
java.util.Map<ObjectChangeSet,ObjectChangeSet> |
getAddObjectList()
ADVANCED:
This method returns the collection of ChangeSets that were added to the collection.
|
java.util.List<ObjectChangeSet> |
getAddOverFlow()
Returns a list of extra adds.
|
java.util.List<java.lang.Integer> |
getCurrentIndexesOfOriginalObjects(java.util.List newList)
The same size as original list,
at the i-th position holds the index of the i-th original object in the current list (-1 if the object was removed):
for example: {0, -1, 1, -1, 3} means that:
previous(0) == current(0);
previous(1) was removed;
previous(2) == current(1);
previous(3) was removed;
previous(4) == current(3);
|
java.lang.Integer |
getOrderedAddObjectIndex(ObjectChangeSet changes)
This method returns the index of an object added to the collection.
|
java.util.Map<ObjectChangeSet,java.lang.Integer> |
getOrderedAddObjectIndices()
This method returns the collection of ChangeSets that they were
added to the collection.
|
java.util.List<ObjectChangeSet> |
getOrderedAddObjects()
This method returns the collection of ChangeSets in the order they were
added to the collection.
|
java.util.List<OrderedChangeObject> |
getOrderedChangeObjectList()
This method returns the Vector of OrderedChangeObjects.
|
java.lang.Object |
getOrderedRemoveObject(java.lang.Integer index)
This method returns the index of an object removed from the collection.
|
java.util.List<java.lang.Integer> |
getOrderedRemoveObjectIndices()
This method returns the ordered list of indices to remove from the collection.
|
java.util.Map<java.lang.Integer,ObjectChangeSet> |
getOrderedRemoveObjects()
This method returns the collection of ChangeSets of objects removed from
the collection.
|
java.util.Map<ObjectChangeSet,ObjectChangeSet> |
getRemoveObjectList()
PUBLIC:
This method returns the Map that contains the removed values from the collection
and their corresponding ChangeSets.
|
boolean |
hasChanges()
PUBLIC:
Returns true if the change set has changes.
|
void |
internalRecreateOriginalCollection(java.lang.Object currentCollection,
AbstractSession session)
Recreates the original state of currentCollection.
|
void |
mergeRecord(ChangeRecord mergeFromRecord,
UnitOfWorkChangeSet mergeToChangeSet,
UnitOfWorkChangeSet mergeFromChangeSet)
This method will be used to merge one record into another.
|
boolean |
orderHasBeenRepaired() |
void |
setAddObjectList(java.util.Map<ObjectChangeSet,ObjectChangeSet> objectChangesList)
Sets the Added objects list.
|
void |
setOrderedAddObjectIndices(java.util.Map<ObjectChangeSet,java.lang.Integer> orderedAddObjectIndices)
Sets collection of ChangeSets (and their respective index) that they
were added to the collection.
|
void |
setOrderedAddObjects(java.util.List<ObjectChangeSet> orderedAddObjects)
Sets collection of ChangeSets that they were added to the collection.
|
void |
setOrderedChangeObjectList(java.util.List<OrderedChangeObject> orderedChangeObjectList) |
void |
setOrderedRemoveObjects(java.util.Map<java.lang.Integer,ObjectChangeSet> orderedRemoveObjects)
Sets collection of ChangeSets that they were removed from the collection.
|
void |
setOrderHasBeenRepaired(boolean hasBeenRepaired) |
void |
setRemoveObjectList(java.util.Map<ObjectChangeSet,ObjectChangeSet> objectChangesList)
Sets the removed objects list.
|
void |
updateReferences(UnitOfWorkChangeSet mergeToChangeSet,
UnitOfWorkChangeSet mergeFromChangeSet)
This method will be used to update the objectsChangeSets references.
|
getLatestCollection, getOldValue, getOldValue, getOriginalCollection, isDeferred, recreateOriginalCollection, setIsDeferred, setLatestCollection, setOriginalCollection
getAttribute, getMapping, getOwner, prepareForSynchronization, setAttribute, setMapping, setOwner, toString, updateChangeRecordWithNewValue
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAttribute, getOldValue, getOwner
public CollectionChangeRecord()
public CollectionChangeRecord(ObjectChangeSet owner)
owner
- the changeSet that uses this recordpublic void addAdditionChange(java.util.Map objectChanges, ContainerPolicy cp, UnitOfWorkChangeSet changeSet, AbstractSession session)
public void addOrderedAdditionChange(java.util.List<java.lang.Object> orderedObjectsToAdd, java.util.Map<java.lang.Object,java.lang.Integer> objectChangesIndices, UnitOfWorkChangeSet changeSet, AbstractSession session)
public void addOrderedRemoveChange(java.util.List<java.lang.Integer> indicesToRemove, java.util.Map objectChanges, UnitOfWorkChangeSet changeSet, AbstractSession session)
public void addRemoveChange(java.util.Map objectChanges, ContainerPolicy cp, UnitOfWorkChangeSet changeSet, AbstractSession session)
public java.util.Map<ObjectChangeSet,ObjectChangeSet> getAddObjectList()
getAddObjectList
in interface CollectionChangeRecord
public java.util.List<ObjectChangeSet> getAddOverFlow()
public java.util.Map<ObjectChangeSet,ObjectChangeSet> getRemoveObjectList()
getRemoveObjectList
in interface CollectionChangeRecord
public boolean hasChanges()
hasChanges
in interface CollectionChangeRecord
public void mergeRecord(ChangeRecord mergeFromRecord, UnitOfWorkChangeSet mergeToChangeSet, UnitOfWorkChangeSet mergeFromChangeSet)
mergeRecord
in class ChangeRecord
public void setAddObjectList(java.util.Map<ObjectChangeSet,ObjectChangeSet> objectChangesList)
public void setRemoveObjectList(java.util.Map<ObjectChangeSet,ObjectChangeSet> objectChangesList)
public void updateReferences(UnitOfWorkChangeSet mergeToChangeSet, UnitOfWorkChangeSet mergeFromChangeSet)
updateReferences
in class ChangeRecord
public java.util.List<ObjectChangeSet> getOrderedAddObjects()
public java.lang.Integer getOrderedAddObjectIndex(ObjectChangeSet changes)
public java.util.Map<ObjectChangeSet,java.lang.Integer> getOrderedAddObjectIndices()
public java.util.List<OrderedChangeObject> getOrderedChangeObjectList()
public java.util.List<java.lang.Integer> getOrderedRemoveObjectIndices()
public java.lang.Object getOrderedRemoveObject(java.lang.Integer index)
public java.util.Map<java.lang.Integer,ObjectChangeSet> getOrderedRemoveObjects()
public void setOrderedAddObjectIndices(java.util.Map<ObjectChangeSet,java.lang.Integer> orderedAddObjectIndices)
public void setOrderedAddObjects(java.util.List<ObjectChangeSet> orderedAddObjects)
public void setOrderedChangeObjectList(java.util.List<OrderedChangeObject> orderedChangeObjectList)
public void setOrderedRemoveObjects(java.util.Map<java.lang.Integer,ObjectChangeSet> orderedRemoveObjects)
public java.util.List<java.lang.Integer> getCurrentIndexesOfOriginalObjects(java.util.List newList)
public void internalRecreateOriginalCollection(java.lang.Object currentCollection, AbstractSession session)
internalRecreateOriginalCollection
in class DeferrableChangeRecord
public void setOrderHasBeenRepaired(boolean hasBeenRepaired)
public boolean orderHasBeenRepaired()
public void clearChanges()
clearChanges
in class DeferrableChangeRecord
EclipseLink 2.6.3, "build v20160428-59c81c5" API Reference