/** * INTERNAL: * Set the ObjectChangeSet on the Listener, initially used for aggregate support */ public void setChangeSetOnListener(ObjectChangeSet objectChangeSet, Object clone){ ((AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener()).setObjectChangeSet(objectChangeSet); }
/** * INTERNAL: * Set the ObjectChangeSet on the Listener, initially used for aggregate support */ public void setChangeSetOnListener(ObjectChangeSet objectChangeSet, Object clone){ ((AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener()).setObjectChangeSet(objectChangeSet); }
/** * 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 disable changetracking temporarily */ public void dissableEventProcessing(Object changeTracker) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)changeTracker)._persistence_getPropertyChangeListener(); if (listener != null) { listener.ignoreEvents(); } }
/** * 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 */ public void raiseInternalPropertyChangeEvent(Object source, String propertyName, Object oldValue, Object newValue) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)source)._persistence_getPropertyChangeListener(); if (listener != null) { listener.internalPropertyChange(new PropertyChangeEvent(source, propertyName, oldValue, newValue)); } }
/** * INTERNAL: * Set the ObjectChangeSet on the Listener, initially used for aggregate support */ public void setChangeSetOnListener(ObjectChangeSet objectChangeSet, Object clone){ ((AttributeChangeListener)((ChangeTracker)clone)._persistence_getPropertyChangeListener()).setObjectChangeSet(objectChangeSet); }
/** * 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: * 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 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 */ public void raiseInternalPropertyChangeEvent(Object source, String propertyName, Object oldValue, Object newValue) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)source)._persistence_getPropertyChangeListener(); if (listener != null) { listener.internalPropertyChange(new PropertyChangeEvent(source, propertyName, oldValue, newValue)); } }
/** * 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: * 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: * 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 */ public void raiseInternalPropertyChangeEvent(Object source, String propertyName, Object oldValue, Object newValue) { ObjectChangeListener listener = (ObjectChangeListener)((ChangeTracker)source)._persistence_getPropertyChangeListener(); if (listener != null) { listener.internalPropertyChange(new PropertyChangeEvent(source, propertyName, oldValue, newValue)); } }
/** * INTERNAL: * Assign ChangeListener to an aggregate object */ public void setAggregateChangeListener(Object parent, Object aggregate, UnitOfWorkImpl uow, ClassDescriptor descriptor, String mappingAttribute) { ((ChangeTracker)aggregate)._persistence_setPropertyChangeListener(new AggregateObjectChangeListener((ObjectChangeListener)((ChangeTracker)parent)._persistence_getPropertyChangeListener(), mappingAttribute)); }
/** * INTERNAL: * Assign ChangeListener to an aggregate object */ public void setAggregateChangeListener(Object parent, Object aggregate, UnitOfWorkImpl uow, ClassDescriptor descriptor, String mappingAttribute) { ((ChangeTracker)aggregate)._persistence_setPropertyChangeListener(new AggregateObjectChangeListener((ObjectChangeListener)((ChangeTracker)parent)._persistence_getPropertyChangeListener(), mappingAttribute)); }
/** * 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: * Assign ChangeListener to an aggregate object */ public void setAggregateChangeListener(Object parent, Object aggregate, UnitOfWorkImpl uow, ClassDescriptor descriptor, String mappingAttribute) { ((ChangeTracker)aggregate)._persistence_setPropertyChangeListener(new AggregateObjectChangeListener((ObjectChangeListener)((ChangeTracker)parent)._persistence_getPropertyChangeListener(), mappingAttribute)); }
/** * INTERNAL: * Assign ChangeListener to an aggregate object */ public void setAggregateChangeListener(Object parent, Object aggregate, UnitOfWorkImpl uow, ClassDescriptor descriptor, String mappingAttribute){ ((ChangeTracker)aggregate)._persistence_setPropertyChangeListener(new AggregateAttributeChangeListener(descriptor, uow, (AttributeChangeListener)((ChangeTracker)parent)._persistence_getPropertyChangeListener(), mappingAttribute, aggregate)); }
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(); }
/** * INTERNAL: * Assign ChangeListener to an aggregate object */ public void setAggregateChangeListener(Object parent, Object aggregate, UnitOfWorkImpl uow, ClassDescriptor descriptor, String mappingAttribute){ ((ChangeTracker)aggregate)._persistence_setPropertyChangeListener(new AggregateAttributeChangeListener(descriptor, uow, (AttributeChangeListener)((ChangeTracker)parent)._persistence_getPropertyChangeListener(), mappingAttribute, aggregate)); // set change trackers for nested aggregates Iterator<DatabaseMapping> i = descriptor.getMappings().iterator(); while (i.hasNext()){ DatabaseMapping mapping = i.next(); if (mapping.isAggregateObjectMapping()){ AggregateObjectMapping aggregateMapping = (AggregateObjectMapping)mapping; Object nestedAggregate = aggregateMapping.getAttributeValueFromObject(aggregate); if (nestedAggregate != null && nestedAggregate instanceof ChangeTracker){ descriptor.getObjectChangePolicy().setAggregateChangeListener(aggregate, nestedAggregate, uow, aggregateMapping.getReferenceDescriptor(), aggregateMapping.getAttributeName()); } } } }
public void setAttributeValueInObject(Object object, Object value) { if(isChangeTracking) { Object oldValue = getAttributeValueFromObject(object); PropertyChangeListener listener = ((ChangeTracker)object)._persistence_getPropertyChangeListener(); if(listener != null) { listener.propertyChange(new PropertyChangeEvent(object, oxmAccessor.getAttributeName(), value, oldValue)); } } if(isValueHolderProperty) { ValueHolderInterface vh = (ValueHolderInterface)ormAccessor.getAttributeValueFromObject(object); if(vh == null) { vh = new ValueHolder(); ((ValueHolder)vh).setIsNewlyWeavedValueHolder(true); } vh.setValue(value); ormAccessor.setAttributeValueInObject(object, vh); } oxmAccessor.setAttributeValueInObject(object, value); }