Class ObjectChangeTrackingPolicy
- java.lang.Object
-
- org.eclipse.persistence.descriptors.changetracking.DeferredChangeDetectionPolicy
-
- org.eclipse.persistence.descriptors.changetracking.ObjectChangeTrackingPolicy
-
- All Implemented Interfaces:
java.io.Serializable,ObjectChangePolicy
- Direct Known Subclasses:
AttributeChangeTrackingPolicy
public class ObjectChangeTrackingPolicy extends DeferredChangeDetectionPolicy
PUBLIC: A ObjectChangeTrackingPolicy allows an object to calculate for itself whether it should has changed by implementing ChangeTracker. Changed objects will be processed in the UnitOfWork commit process to include any changes in the results of the commit. Unchanged objects will be ignored.
-
-
Constructor Summary
Constructors Constructor Description ObjectChangeTrackingPolicy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearChanges(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor, boolean forRefresh)INTERNAL: Clear the changes in the ObjectChangeListenervoiddissableEventProcessing(java.lang.Object changeTracker)INTERNAL: This method is used to disable changetracking temporarilyvoidenableEventProcessing(java.lang.Object changeTracker)INTERNAL: This method is used to enable changetracking temporarilyvoidinitialize(org.eclipse.persistence.internal.sessions.AbstractSession session, ClassDescriptor descriptor)INTERNAL: initialize the PolicybooleanisDeferredChangeDetectionPolicy()Used to track instances of the change policies without doing an instance of checkbooleanisObjectChangeTrackingPolicy()Used to track instances of the change policies without doing an instance of checkvoidraiseInternalPropertyChangeEvent(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 listner in the case that a listener exists.voidsetAggregateChangeListener(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 objectjava.beans.PropertyChangeListenersetChangeListener(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor)INTERNAL: Assign ObjectChangeListener to PropertyChangeListenerbooleanshouldCompareExistingObjectForChange(java.lang.Object object, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor)INTERNAL: Return true if the Object should be compared, false otherwise.-
Methods inherited from class org.eclipse.persistence.descriptors.changetracking.DeferredChangeDetectionPolicy
buildBackupClone, calculateChanges, calculateChangesForExistingObject, calculateChangesForNewObject, createObjectChangeSet, createObjectChangeSetThroughComparison, isAttributeChangeTrackingPolicy, revertChanges, setChangeSetOnListener, updateListenerForSelfMerge, updateWithChanges
-
-
-
-
Method Detail
-
dissableEventProcessing
public void dissableEventProcessing(java.lang.Object changeTracker)
INTERNAL: This method is used to disable changetracking temporarily- Specified by:
dissableEventProcessingin interfaceObjectChangePolicy- Overrides:
dissableEventProcessingin classDeferredChangeDetectionPolicy
-
enableEventProcessing
public void enableEventProcessing(java.lang.Object changeTracker)
INTERNAL: This method is used to enable changetracking temporarily- Specified by:
enableEventProcessingin interfaceObjectChangePolicy- Overrides:
enableEventProcessingin classDeferredChangeDetectionPolicy
-
shouldCompareExistingObjectForChange
public 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. In ObjectChangeTrackingPolicy or AttributeChangeTracking Policy this method will return true if the object is new, if the object is in the OptimisticReadLock list or if the listener.hasChanges() returns true.- Specified by:
shouldCompareExistingObjectForChangein interfaceObjectChangePolicy- Overrides:
shouldCompareExistingObjectForChangein classDeferredChangeDetectionPolicy- Parameters:
object- the object that will be comparedunitOfWork- the active unitOfWorkdescriptor- the descriptor for the current object
-
raiseInternalPropertyChangeEvent
public 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 listner in the case that a listener exists. If there is no listener then this call is a no-op- Specified by:
raiseInternalPropertyChangeEventin interfaceObjectChangePolicy- Overrides:
raiseInternalPropertyChangeEventin classDeferredChangeDetectionPolicy
-
setAggregateChangeListener
public 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- Specified by:
setAggregateChangeListenerin interfaceObjectChangePolicy- Overrides:
setAggregateChangeListenerin classDeferredChangeDetectionPolicy
-
setChangeListener
public java.beans.PropertyChangeListener setChangeListener(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor)INTERNAL: Assign ObjectChangeListener to PropertyChangeListener- Specified by:
setChangeListenerin interfaceObjectChangePolicy- Overrides:
setChangeListenerin classDeferredChangeDetectionPolicy
-
clearChanges
public void clearChanges(java.lang.Object clone, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow, ClassDescriptor descriptor, boolean forRefresh)INTERNAL: Clear the changes in the ObjectChangeListener- Specified by:
clearChangesin interfaceObjectChangePolicy- Overrides:
clearChangesin classDeferredChangeDetectionPolicy
-
initialize
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session, ClassDescriptor descriptor)INTERNAL: initialize the Policy- Specified by:
initializein interfaceObjectChangePolicy- Overrides:
initializein classDeferredChangeDetectionPolicy
-
isDeferredChangeDetectionPolicy
public boolean isDeferredChangeDetectionPolicy()
Used to track instances of the change policies without doing an instance of check- Specified by:
isDeferredChangeDetectionPolicyin interfaceObjectChangePolicy- Overrides:
isDeferredChangeDetectionPolicyin classDeferredChangeDetectionPolicy
-
isObjectChangeTrackingPolicy
public boolean isObjectChangeTrackingPolicy()
Used to track instances of the change policies without doing an instance of check- Specified by:
isObjectChangeTrackingPolicyin interfaceObjectChangePolicy- Overrides:
isObjectChangeTrackingPolicyin classDeferredChangeDetectionPolicy
-
-