/** * 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: * 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: * Assign AttributeChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { AttributeChangeListener listener = new AttributeChangeListener(descriptor, uow, clone); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * INTERNAL: * Assign AttributeChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { AttributeChangeListener listener = new AttributeChangeListener(descriptor, uow, clone); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * 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: * Assign AttributeChangeListener to PropertyChangeListener */ public PropertyChangeListener setChangeListener(Object clone, UnitOfWorkImpl uow, ClassDescriptor descriptor) { AttributeChangeListener listener = new AttributeChangeListener(descriptor, uow, clone); ((ChangeTracker)clone)._persistence_setPropertyChangeListener(listener); return listener; }
/** * 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)); }
/** * 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)); }
/** * Returns the clone of the specified object. This is called only from unit of work. * This only instantiates the clone instance, it does not clone the attributes, * this allows the stub of the clone to be registered before cloning its parts. */ public Object instantiateClone(Object domainObject, AbstractSession session) { Object clone = this.descriptor.getCopyPolicy().buildClone(domainObject, session); // Clear change tracker. if (clone instanceof ChangeTracker) { ((ChangeTracker)clone)._persistence_setPropertyChangeListener(null); } return clone; }
protected void makeDetached(Object instance) { if (instance instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.setNew((BaseGenericIdEntity) instance, false); BaseEntityInternalAccess.setManaged((BaseGenericIdEntity) instance, false); BaseEntityInternalAccess.setDetached((BaseGenericIdEntity) instance, true); } if (instance instanceof FetchGroupTracker) { ((FetchGroupTracker) instance)._persistence_setSession(null); } if (instance instanceof ChangeTracker) { ((ChangeTracker) instance)._persistence_setPropertyChangeListener(null); } }
trackedObject = (ChangeTracker)target; listener = trackedObject._persistence_getPropertyChangeListener(); trackedObject._persistence_setPropertyChangeListener(null); } finally { if (!trackChanges && trackedObject != null) { trackedObject._persistence_setPropertyChangeListener(listener);
trackedObject = (ChangeTracker)target; listener = trackedObject._persistence_getPropertyChangeListener(); trackedObject._persistence_setPropertyChangeListener(null); } finally { if (!trackChanges && trackedObject != null) { trackedObject._persistence_setPropertyChangeListener(listener);
trackedObject = (ChangeTracker)target; listener = trackedObject._persistence_getPropertyChangeListener(); trackedObject._persistence_setPropertyChangeListener(null); } finally { if (trackedObject != null) { trackedObject._persistence_setPropertyChangeListener(listener);
/** * 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()); } } } }
/** * 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()); } } } }
/** * Returns the clone of the specified object. This is called only from unit of work. * This only instantiates the clone instance, it does not clone the attributes, * this allows the stub of the clone to be registered before cloning its parts. */ public Object instantiateClone(Object domainObject, AbstractSession session) { Object clone = this.descriptor.getCopyPolicy().buildClone(domainObject, session); // Clear change tracker. if (clone instanceof ChangeTracker) { ((ChangeTracker)clone)._persistence_setPropertyChangeListener(null); } if(clone instanceof FetchGroupTracker) { ((FetchGroupTracker)clone)._persistence_setFetchGroup(null); ((FetchGroupTracker)clone)._persistence_setSession(null); } clearPrimaryKey(clone); return clone; }
/** * Returns the clone of the specified object. This is called only from unit of work. * This only instantiates the clone instance, it does not clone the attributes, * this allows the stub of the clone to be registered before cloning its parts. */ public Object instantiateClone(Object domainObject, AbstractSession session) { Object clone = this.descriptor.getCopyPolicy().buildClone(domainObject, session); // Clear change tracker. if (clone instanceof ChangeTracker) { ((ChangeTracker)clone)._persistence_setPropertyChangeListener(null); } if(clone instanceof FetchGroupTracker) { ((FetchGroupTracker)clone)._persistence_setFetchGroup(null); ((FetchGroupTracker)clone)._persistence_setSession(null); } clearPrimaryKey(clone); return clone; }
if (newListener == null){ newListener = new AggregateAttributeChangeListener(referenceDescriptor, uow, ((AttributeChangeListener)((ChangeTracker)sourceClone)._persistence_getPropertyChangeListener()), this.getAttributeName(), newValue); ((ChangeTracker)newValue)._persistence_setPropertyChangeListener(newListener);