/** * INTERNAL: * Set the change listener in the collection. * If the collection is not indirect it must be re-built. * This is used for resuming or flushing units of work. */ public void setChangeListener(Object clone, PropertyChangeListener listener, UnitOfWorkImpl uow) { if (this.indirectionPolicy.usesTransparentIndirection() && isAttributeValueInstantiated(clone)) { Object attributeValue = getRealAttributeValueFromObject(clone, uow); if (!(attributeValue instanceof CollectionChangeTracker)) { Object container = attributeValue; ContainerPolicy containerPolicy = this.containerPolicy; if (attributeValue == null) { container = containerPolicy.containerInstance(1); } else { container = containerPolicy.containerInstance(containerPolicy.sizeFor(attributeValue)); for (Object iterator = containerPolicy.iteratorFor(attributeValue); containerPolicy.hasNext(iterator);) { containerPolicy.addInto(containerPolicy.nextEntry(iterator, uow), container, uow); } } setRealAttributeValueInObject(clone, container); ((CollectionChangeTracker)container).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(listener); } else { ((CollectionChangeTracker)attributeValue).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)attributeValue)._persistence_setPropertyChangeListener(listener); } } }
((CollectionChangeTracker)container).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(listener); } else { ((CollectionChangeTracker)attributeValue).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)attributeValue)._persistence_setPropertyChangeListener(listener);
((CollectionChangeTracker)container).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(listener); } else { ((CollectionChangeTracker)attributeValue).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)attributeValue)._persistence_setPropertyChangeListener(listener);
Object container = containerPolicy.containerInstance(1); if ((this.getDescriptor().getObjectChangePolicy().isObjectChangeTrackingPolicy()) && ((clone != null) && (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null)) && (container instanceof CollectionChangeTracker)) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener()); ((CollectionChangeTracker)clonedAttributeValue).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)clonedAttributeValue)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
Object container = containerPolicy.containerInstance(1); if (cloningSession.isUnitOfWork() && (this.getDescriptor().getObjectChangePolicy().isObjectChangeTrackingPolicy()) && ((clone != null) && (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null)) && (container instanceof CollectionChangeTracker)) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener()); ((CollectionChangeTracker)clonedAttributeValue).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)clonedAttributeValue)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
Object container = containerPolicy.containerInstance(1); if (cloningSession.isUnitOfWork() && (this.getDescriptor().getObjectChangePolicy().isObjectChangeTrackingPolicy()) && ((clone != null) && (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null)) && (container instanceof CollectionChangeTracker)) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener()); ((CollectionChangeTracker)clonedAttributeValue).setTrackedAttributeName(this.getAttributeName()); ((CollectionChangeTracker)clonedAttributeValue)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
&& (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null) && (container instanceof CollectionChangeTracker) ) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.mapping.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
&& (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null) && (container instanceof CollectionChangeTracker) ) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.mapping.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
&& (((ChangeTracker)clone)._persistence_getPropertyChangeListener() != null) && (container instanceof CollectionChangeTracker) ) { ((CollectionChangeTracker)container).setTrackedAttributeName(this.mapping.getAttributeName()); ((CollectionChangeTracker)container)._persistence_setPropertyChangeListener(((ChangeTracker)clone)._persistence_getPropertyChangeListener());
((CollectionChangeTracker)newContainer).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)newContainer)._persistence_setPropertyChangeListener(listener);
((CollectionChangeTracker)newContainer).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)newContainer)._persistence_setPropertyChangeListener(listener);
((CollectionChangeTracker)newContainer).setTrackedAttributeName(getAttributeName()); ((CollectionChangeTracker)newContainer)._persistence_setPropertyChangeListener(listener);