/** * INTERNAL: * Used by AttributeLevelChangeTracking to update a changeRecord with calculated changes * as apposed to detected changes. If an attribute can not be change tracked it's * changes can be detected through this process. */ public void calculateDeferredChanges(ChangeRecord changeRecord, AbstractSession session){ CollectionChangeRecord collectionRecord = (CollectionChangeRecord) changeRecord; //clear incase events were fired since the set of the collection // collectionRecord.getAddObjectList().clear(); // collectionRecord.getRemoveObjectList().clear(); compareCollectionsForChange(collectionRecord.getOriginalCollection(), collectionRecord.getLatestCollection(), collectionRecord, session); }
changeRecord.setAttribute(getAttributeName()); changeRecord.setMapping(this); compareCollectionsForChange(backUpObjectCollection, cloneObjectCollection, changeRecord, session); if (changeRecord.hasChanges()) { return changeRecord;