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 ObjectChangePolicyclone - the Object to compute a change set forchangeSet - the change set to add changes tounitOfWork - the current sessiondescriptor - 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 ObjectChangePolicyclone - the Object to compute a change set forchangeSet - the change set to add changes tounitOfWork - the current sessiondescriptor - 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 ObjectChangePolicyclone - the Object to compute a change set forbackUp - the old version of the object to use for comparisonchangeSet - the change set to add changes tounitOfWork - the current sessiondescriptor - the descriptor for this objectshouldRaiseEvent - indicates whether PreUpdate event should be risen (usually true)isNew - determines if the object is newpublic void clearChanges(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor,
boolean forRefresh)
clearChanges in interface ObjectChangePolicypublic 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 ObjectChangePolicypublic void dissableEventProcessing(java.lang.Object changeTracker)
dissableEventProcessing in interface ObjectChangePolicypublic void enableEventProcessing(java.lang.Object changeTracker)
enableEventProcessing in interface ObjectChangePolicypublic boolean shouldCompareExistingObjectForChange(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
ClassDescriptor descriptor)
shouldCompareExistingObjectForChange in interface ObjectChangePolicyobject - 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 ObjectChangePolicypublic 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 ObjectChangePolicypublic java.beans.PropertyChangeListener setChangeListener(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
ClassDescriptor descriptor)
setChangeListener in interface ObjectChangePolicypublic void setChangeSetOnListener(org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
java.lang.Object clone)
setChangeSetOnListener in interface ObjectChangePolicypublic 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 ObjectChangePolicypublic void raiseInternalPropertyChangeEvent(java.lang.Object source,
java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue)
raiseInternalPropertyChangeEvent in interface ObjectChangePolicypublic void revertChanges(java.lang.Object clone,
ClassDescriptor descriptor,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map cloneMapping,
boolean forRefresh)
revertChanges in interface ObjectChangePolicycloneMapping - 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 ObjectChangePolicypublic boolean isDeferredChangeDetectionPolicy()
isDeferredChangeDetectionPolicy in interface ObjectChangePolicypublic boolean isObjectChangeTrackingPolicy()
isObjectChangeTrackingPolicy in interface ObjectChangePolicypublic boolean isAttributeChangeTrackingPolicy()
isAttributeChangeTrackingPolicy in interface ObjectChangePolicypublic 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