public class DeferredChangeDetectionPolicy extends java.lang.Object implements ObjectChangePolicy, java.io.Serializable
Constructor and Description |
---|
DeferredChangeDetectionPolicy() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
buildBackupClone(java.lang.Object clone,
org.eclipse.persistence.internal.descriptors.ObjectBuilder builder,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL:
Build back up clone.
|
org.eclipse.persistence.internal.sessions.ObjectChangeSet |
calculateChanges(java.lang.Object clone,
java.lang.Object backUp,
boolean isNew,
org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
ClassDescriptor descriptor,
boolean shouldRaiseEvent)
INTERNAL:
calculateChanges creates a change set for a particular object.
|
org.eclipse.persistence.internal.sessions.ObjectChangeSet |
calculateChangesForExistingObject(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
ClassDescriptor descriptor,
boolean shouldRaiseEvent)
INTERNAL:
PERF: Calculate change for the new object, avoids check for new since already know.
|
org.eclipse.persistence.internal.sessions.ObjectChangeSet |
calculateChangesForNewObject(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
ClassDescriptor descriptor,
boolean shouldRaiseEvent)
INTERNAL:
PERF: Calculate change for the new object, avoids check for new since already know.
|
void |
clearChanges(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor,
boolean forRefresh)
INTERNAL:
This is a place holder for reseting the listener on one of the subclasses
|
org.eclipse.persistence.internal.sessions.ObjectChangeSet |
createObjectChangeSet(java.lang.Object clone,
java.lang.Object backUp,
org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet,
boolean isNew,
org.eclipse.persistence.internal.sessions.AbstractSession session,
ClassDescriptor descriptor)
INTERNAL:
Create ObjectChangeSet
|
org.eclipse.persistence.internal.sessions.ObjectChangeSet |
createObjectChangeSetThroughComparison(java.lang.Object clone,
java.lang.Object backUp,
org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet,
boolean isNew,
org.eclipse.persistence.internal.sessions.AbstractSession session,
ClassDescriptor descriptor)
INTERNAL:
Create ObjectChangeSet
|
void |
dissableEventProcessing(java.lang.Object changeTracker)
INTERNAL:
This method is used to disable changetracking temporarily
|
void |
enableEventProcessing(java.lang.Object changeTracker)
INTERNAL:
This method is used to enable changetracking temporarily
|
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session,
ClassDescriptor descriptor)
INTERNAL:
initialize the Policy
|
boolean |
isAttributeChangeTrackingPolicy()
Used to track instances of the change policies without doing an instance of check
|
boolean |
isDeferredChangeDetectionPolicy()
Used to track instances of the change policies without doing an instance of check
|
boolean |
isObjectChangeTrackingPolicy()
Used to track instances of the change policies without doing an instance of check
|
void |
raiseInternalPropertyChangeEvent(java.lang.Object source,
java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue)
INTERNAL:
This may cause a property change event to be raised to a listener in the case that a listener exists.
|
void |
revertChanges(java.lang.Object clone,
ClassDescriptor descriptor,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map cloneMapping,
boolean forRefresh)
INTERNAL:
This method is used to revert an object within the unit of work
|
void |
setAggregateChangeListener(java.lang.Object parent,
java.lang.Object aggregate,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor,
java.lang.String mappingAttribute)
INTERNAL:
Assign ChangeListener to an aggregate object
|
java.beans.PropertyChangeListener |
setChangeListener(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor)
INTERNAL:
Set ChangeListener for the clone
|
void |
setChangeSetOnListener(org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
java.lang.Object clone)
INTERNAL:
Set the ObjectChangeSet on the Listener, initially used for aggregate support
|
boolean |
shouldCompareExistingObjectForChange(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
ClassDescriptor descriptor)
INTERNAL:
Return true if the Object should be compared, false otherwise.
|
void |
updateListenerForSelfMerge(org.eclipse.persistence.internal.descriptors.changetracking.ObjectChangeListener listener,
ForeignReferenceMapping mapping,
java.lang.Object source,
java.lang.Object target,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL:
In cases where a relationship with detached or new entities is merged into itself previous changes may have been recorded for
the detached/new entity that need to be updated.
|
void |
updateWithChanges(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor)
INTERNAL:
Clear changes in the ChangeListener of the clone
|
public org.eclipse.persistence.internal.sessions.ObjectChangeSet calculateChangesForNewObject(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor, boolean shouldRaiseEvent)
calculateChangesForNewObject
in interface ObjectChangePolicy
clone
- the Object to compute a change set forchangeSet
- the change set to add changes todescriptor
- the descriptor for this objectshouldRaiseEvent
- indicates whether PreUpdate event should be risen (usually true)public org.eclipse.persistence.internal.sessions.ObjectChangeSet calculateChangesForExistingObject(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor, boolean shouldRaiseEvent)
calculateChangesForExistingObject
in interface ObjectChangePolicy
clone
- the Object to compute a change set forchangeSet
- the change set to add changes todescriptor
- the descriptor for this objectshouldRaiseEvent
- indicates whether PreUpdate event should be risen (usually true)public org.eclipse.persistence.internal.sessions.ObjectChangeSet calculateChanges(java.lang.Object clone, java.lang.Object backUp, boolean isNew, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor, boolean shouldRaiseEvent)
calculateChanges
in interface ObjectChangePolicy
clone
- the Object to compute a change set forbackUp
- the old version of the object to use for comparisonchangeSet
- the change set to add changes tosession
- the current sessiondescriptor
- the descriptor for this objectshouldRaiseEvent
- indicates whether PreUpdate event should be risen (usually true)public void clearChanges(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor, boolean forRefresh)
clearChanges
in interface ObjectChangePolicy
public org.eclipse.persistence.internal.sessions.ObjectChangeSet createObjectChangeSet(java.lang.Object clone, java.lang.Object backUp, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet, boolean isNew, org.eclipse.persistence.internal.sessions.AbstractSession session, ClassDescriptor descriptor)
public org.eclipse.persistence.internal.sessions.ObjectChangeSet createObjectChangeSetThroughComparison(java.lang.Object clone, java.lang.Object backUp, org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet changeSet, boolean isNew, org.eclipse.persistence.internal.sessions.AbstractSession session, ClassDescriptor descriptor)
createObjectChangeSetThroughComparison
in interface ObjectChangePolicy
public void dissableEventProcessing(java.lang.Object changeTracker)
dissableEventProcessing
in interface ObjectChangePolicy
public void enableEventProcessing(java.lang.Object changeTracker)
enableEventProcessing
in interface ObjectChangePolicy
public boolean shouldCompareExistingObjectForChange(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor)
shouldCompareExistingObjectForChange
in interface ObjectChangePolicy
object
- the object that will be comparedunitOfWork
- the active unitOfWorkdescriptor
- the descriptor for the current objectpublic java.lang.Object buildBackupClone(java.lang.Object clone, org.eclipse.persistence.internal.descriptors.ObjectBuilder builder, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
buildBackupClone
in interface ObjectChangePolicy
public void setAggregateChangeListener(java.lang.Object parent, java.lang.Object aggregate, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor, java.lang.String mappingAttribute)
setAggregateChangeListener
in interface ObjectChangePolicy
public java.beans.PropertyChangeListener setChangeListener(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor)
setChangeListener
in interface ObjectChangePolicy
public void setChangeSetOnListener(org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, java.lang.Object clone)
setChangeSetOnListener
in interface ObjectChangePolicy
public void updateWithChanges(java.lang.Object clone, org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor)
updateWithChanges
in interface ObjectChangePolicy
public void raiseInternalPropertyChangeEvent(java.lang.Object source, java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
raiseInternalPropertyChangeEvent
in interface ObjectChangePolicy
public void revertChanges(java.lang.Object clone, ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, java.util.Map cloneMapping, boolean forRefresh)
revertChanges
in interface ObjectChangePolicy
cloneMapping
- may not be the same as what is in the uowpublic void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session, ClassDescriptor descriptor)
initialize
in interface ObjectChangePolicy
public boolean isDeferredChangeDetectionPolicy()
isDeferredChangeDetectionPolicy
in interface ObjectChangePolicy
public boolean isObjectChangeTrackingPolicy()
isObjectChangeTrackingPolicy
in interface ObjectChangePolicy
public boolean isAttributeChangeTrackingPolicy()
isAttributeChangeTrackingPolicy
in interface ObjectChangePolicy
public void updateListenerForSelfMerge(org.eclipse.persistence.internal.descriptors.changetracking.ObjectChangeListener listener, ForeignReferenceMapping mapping, java.lang.Object source, java.lang.Object target, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
updateListenerForSelfMerge
in interface ObjectChangePolicy