/** * INTERNAL: * Assign ObjectChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { ObjectChangeListener listener = new ObjectChangeListener(); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * INTERNAL: * Clear the changes in this listener */ public void clearChanges() { super.clearChanges(); this.objectChangeSet = null; } }
/** * INTERNAL: * This method is used to disable changetracking temporarily */ public void dissableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.ignoreEvents(); } }
/** * PUBLIC: * This method turns marks the object as changed. */ public void propertyChange(PropertyChangeEvent evt) { if (this.ignoreEvents){ return; } internalPropertyChange(evt); }
/** * INTERNAL: * This method is used to enable changetracking temporarily */ public void enableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.processEvents(); } }
/** * 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. * @param object the object that will be compared * @param unitOfWork the active unitOfWork * @param descriptor the descriptor for the current object */ public boolean shouldCompareExistingObjectForChange(Object object, UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor) { //PERF: Breakdown the logic to have the most likely scenario checked first ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)object)._persistence_getPropertyChangeListener(); if ((listener != null) && listener.hasChanges()) { return true; } Boolean optimisticRead = null; if (unitOfWork.hasOptimisticReadLockObjects()) { optimisticRead = (Boolean)unitOfWork.getOptimisticReadLockObjects().get(object); // Need to always compare/build change set for new objects and those that are being forced to // updated (opt. read lock and forceUpdate) if (optimisticRead != null) { return true; } } if ((descriptor.getCMPPolicy() != null) && descriptor.getCMPPolicy().getForceUpdate()) { return true; } return false; }
/** * PUBLIC: * This method turns marks the object as changed. */ public void propertyChange(PropertyChangeEvent evt) { if (this.ignoreEvents){ return; } internalPropertyChange(evt); }
/** * INTERNAL: * This method is used to enable changetracking temporarily */ public void enableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.processEvents(); } }
/** * 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. * @param object the object that will be compared * @param unitOfWork the active unitOfWork * @param descriptor the descriptor for the current object */ public boolean shouldCompareExistingObjectForChange(Object object, UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor) { //PERF: Breakdown the logic to have the most likely scenario checked first ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)object)._persistence_getPropertyChangeListener(); if ((listener != null) && listener.hasChanges()) { return true; } Boolean optimisticRead = null; if (unitOfWork.hasOptimisticReadLockObjects()) { optimisticRead = (Boolean)unitOfWork.getOptimisticReadLockObjects().get(object); // Need to always compare/build change set for new objects and those that are being forced to // updated (opt. read lock and forceUpdate) if (optimisticRead != null) { return true; } } if ((descriptor.getCMPPolicy() != null) && descriptor.getCMPPolicy().getForceUpdate()) { return true; } return false; }
/** * PUBLIC: * This method turns marks the object as changed. */ public void propertyChange(PropertyChangeEvent evt) { if (this.ignoreEvents){ return; } internalPropertyChange(evt); }
/** * INTERNAL: * Clear the changes in this listener */ public void clearChanges(boolean forRefresh) { super.clearChanges(forRefresh); if (forRefresh && this.objectChangeSet != null){ this.objectChangeSet.clear(true); } this.objectChangeSet = null; }
/** * INTERNAL: * Assign ObjectChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { ObjectChangeListener listener = new ObjectChangeListener(); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * INTERNAL: * This method is used to disable changetracking temporarily */ public void dissableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.ignoreEvents(); } }
/** * INTERNAL: * This method is used to enable changetracking temporarily */ public void enableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.processEvents(); } }
/** * 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. * @param object the object that will be compared * @param unitOfWork the active unitOfWork * @param descriptor the descriptor for the current object */ public boolean shouldCompareExistingObjectForChange(Object object, UnitOfWorkImpl unitOfWork, ClassDescriptor descriptor) { //PERF: Breakdown the logic to have the most likely scenario checked first ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)object)._persistence_getPropertyChangeListener(); if ((listener != null) && listener.hasChanges()) { return true; } Boolean optimisticRead = null; if (unitOfWork.hasOptimisticReadLockObjects()) { optimisticRead = (Boolean)unitOfWork.getOptimisticReadLockObjects().get(object); // Need to always compare/build change set for new objects and those that are being forced to // updated (opt. read lock and forceUpdate) if (optimisticRead != null) { return true; } } if ((descriptor.getCMPPolicy() != null) && descriptor.getCMPPolicy().getForceUpdate()) { return true; } return false; }
/** * PUBLIC: * This method turns marks the object as changed. */ public void internalPropertyChange(PropertyChangeEvent evt) { hasChanges = true; this.parentListener.internalPropertyChange(new PropertyChangeEvent(evt.getSource(), this.parentAttributeName, evt.getOldValue(), evt.getNewValue())); }
/** * INTERNAL: * Clear the changes in this listener */ public void clearChanges(boolean forRefresh) { super.clearChanges(forRefresh); if (forRefresh && this.objectChangeSet != null){ this.objectChangeSet.clear(true); } this.objectChangeSet = null; }
/** * INTERNAL: * Assign ObjectChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { ObjectChangeListener listener = new ObjectChangeListener(); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * INTERNAL: * This method is used to disable changetracking temporarily */ public void dissableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.ignoreEvents(); } }
/** * PUBLIC: * This method turns marks the object as changed. */ public void internalPropertyChange(PropertyChangeEvent evt) { hasChanges = true; this.parentListener.internalPropertyChange(new PropertyChangeEvent(evt.getSource(), this.parentAttributeName, evt.getOldValue(), evt.getNewValue())); }