public String toString() { return getClass().getSimpleName() + "(" + getObjectChangeSet() + ")"; } }
public String toString() { return getClass().getSimpleName() + "(" + getObjectChangeSet() + ")"; } }
/** * Accumulates changes for the entity. Stores changed attribute names and old values. */ public void addChanges(Entity entity) { if (!(entity instanceof ChangeTracker)) return; AttributeChangeListener changeListener = (AttributeChangeListener) ((ChangeTracker) entity)._persistence_getPropertyChangeListener(); if (changeListener == null) return; addChanges(changeListener.getObjectChangeSet()); }
/** * 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. */ public void updateListenerForSelfMerge(ObjectChangeListener listener, ForeignReferenceMapping mapping, Object source, Object target, UnitOfWorkImpl unitOfWork){ ChangeRecord record = (ChangeRecord) ((AttributeChangeListener)listener).getObjectChangeSet().getChangesForAttributeNamed(mapping.getAttributeName()); mapping.updateChangeRecordForSelfMerge(record, source, target, (UnitOfWorkChangeSet) ((AttributeChangeListener)listener).getObjectChangeSet().getUOWChangeSet(), 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. */ public void updateListenerForSelfMerge(ObjectChangeListener listener, ForeignReferenceMapping mapping, Object source, Object target, UnitOfWorkImpl unitOfWork){ ChangeRecord record = (ChangeRecord) ((AttributeChangeListener)listener).getObjectChangeSet().getChangesForAttributeNamed(mapping.getAttributeName()); mapping.updateChangeRecordForSelfMerge(record, source, target, (UnitOfWorkChangeSet) ((AttributeChangeListener)listener).getObjectChangeSet().getUOWChangeSet(), unitOfWork); }
protected static boolean isDeleted(BaseGenericIdEntity entity, AttributeChangeListener changeListener) { if ((entity instanceof SoftDelete)) { ObjectChangeSet changeSet = changeListener.getObjectChangeSet(); return changeSet != null && changeSet.getAttributesToChanges().containsKey("deleteTs") && ((SoftDelete) entity).isDeleted(); } else { return BaseEntityInternalAccess.isRemoved(entity); } }
protected Set<String> calculateDirtyFields(Entity entity, EntityAttributeChanges changes) { if (changes == null) { if (!(entity instanceof ChangeTracker) || !PersistenceHelper.isManaged(entity)) return Collections.emptySet(); PropertyChangeListener propertyChangeListener = ((ChangeTracker) entity)._persistence_getPropertyChangeListener(); if (propertyChangeListener == null) throw new IllegalStateException("Entity '" + entity + "' is a ChangeTracker but has no PropertyChangeListener"); changes = new EntityAttributeChanges(); ObjectChangeSet objectChanges = ((AttributeChangeListener) propertyChangeListener).getObjectChangeSet(); if (objectChanges != null) { changes.addChanges(objectChanges); } } return changes.getAttributes(); }
} else if (info.onUpdated && changeListener.hasChanges()) { type = EntityChangedEvent.Type.UPDATED; attributeChanges = getEntityAttributeChanges(entity, changeListener.getObjectChangeSet());
/** * Returns the set of dirty attributes (changed since the last load from the database). * <p> If the entity is new, returns all its attributes. * <p> If the entity is not persistent or not in the Managed state, returns empty set. * * @param entity entity instance * @return dirty attribute names * @see #isDirty(Entity, String...) */ public Set<String> getDirtyFields(Entity entity) { Preconditions.checkNotNullArgument(entity, "entity is null"); if (!(entity instanceof ChangeTracker) || !entityStates.isManaged(entity)) return Collections.emptySet(); HashSet<String> result = new HashSet<>(); if (entityStates.isNew(entity)) { for (MetaProperty property : metadata.getClassNN(entity.getClass()).getProperties()) { if (metadata.getTools().isPersistent(property)) result.add(property.getName()); } } else { PropertyChangeListener propertyChangeListener = ((ChangeTracker) entity)._persistence_getPropertyChangeListener(); if (propertyChangeListener == null) throw new IllegalStateException("Entity '" + entity + "' is a ChangeTracker but has no PropertyChangeListener"); ObjectChangeSet objectChanges = ((AttributeChangeListener) propertyChangeListener).getObjectChangeSet(); if (objectChanges != null) // can be null for example in AFTER_DELETE entity listener result.addAll(objectChanges.getChangedAttributeNames()); } return result; }
((AttributeChangeListener) ((ChangeTracker) entity)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (objectChanges != null) { // can be null for example in AFTER_DELETE entity listener ChangeRecord changeRecord = objectChanges.getChangesForAttributeNamed(attribute);
ObjectChangeSet changes; if (!isNew) { changes = ((AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener()).getObjectChangeSet();
AttributeChangeListener listener = (AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener(); if (listener != null){ changes = listener.getObjectChangeSet();
AttributeChangeListener listener = (AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener(); if (listener != null){ changes = listener.getObjectChangeSet();
AttributeChangeListener changeListener = (AttributeChangeListener) ((ChangeTracker) cav)._persistence_getPropertyChangeListener(); if (changeListener != null && changeListener.getObjectChangeSet() != null) { Object oldValue = null; boolean changed = false; for (ChangeRecord changeRecord : changeListener.getObjectChangeSet().getChanges()) { switch (changeRecord.getAttribute()) { case "stringValue":
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectMapChangeRecord changeRecord = (DirectMapChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectMapChangeRecord changeRecord = (DirectMapChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectMapChangeRecord changeRecord = (DirectMapChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectCollectionChangeRecord changeRecord = (DirectCollectionChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectCollectionChangeRecord changeRecord = (DirectCollectionChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());
ObjectChangeSet changeSet = ((AttributeChangeListener)((ChangeTracker)target)._persistence_getPropertyChangeListener()).getObjectChangeSet(); if (changeSet != null) { DirectCollectionChangeRecord changeRecord = (DirectCollectionChangeRecord)changeSet.getChangesForAttributeNamed(getAttributeName());