/** * If the original value holder was not instantiated, * then first instantiate it to obtain the backup value. */ @Override public Object instantiate() { // Ensures instantiation of the original, and setting of this back value holder's value. return this.unitOfWorkValueHolder.getValue(); }
/** * INTERNAL: * Return whether the specified object is instantiated. */ public boolean objectIsInstantiated(Object object) { return ((ValueHolderInterface)object).isInstantiated(); }
public Object getAttributeValueFromObject(Object object) { if(isValueHolderProperty) { ValueHolderInterface vh = (ValueHolderInterface)ormAccessor.getAttributeValueFromObject(object); if(vh != null && !vh.isInstantiated()) { Object value = vh.getValue(); oxmAccessor.setAttributeValueInObject(object, value); if(vh instanceof WeavedAttributeValueHolderInterface) { ((WeavedAttributeValueHolderInterface)vh).setIsCoordinatedWithProperty(true); } } } return oxmAccessor.getAttributeValueFromObject(object); }
/** * INTERNAL: * Return a backup clone of the attribute. */ public Object backupCloneAttribute(Object attributeValue, Object clone, Object backup, UnitOfWorkImpl unitOfWork) { //no need to check if the attribute is a valueholder because closeAttribute // should always be called first ValueHolderInterface valueHolder = (ValueHolderInterface)attributeValue;// cast the value ValueHolderInterface result = null; // delay instantiation until absolutely necessary if ((!(valueHolder instanceof UnitOfWorkValueHolder)) || valueHolder.isInstantiated()) { result = new ValueHolder(); result.setValue(super.backupCloneAttribute(valueHolder.getValue(), clone, backup, unitOfWork)); } else { // Backup value holder will be instantiated when uow vh is, to get original value, // backup must also know about the uow vh, in case it needs to get its value. result = new BackupValueHolder(valueHolder); ((UnitOfWorkValueHolder)valueHolder).setBackupValueHolder(result); } return result; }
result.setValue(this.mapping.buildCloneForPartObject(valueHolder.getValue(), original, null, clone, cloningSession, refreshCascade, false, false)); } else { Object newObject = this.mapping.buildCloneForPartObject(valueHolder.getValue(), original, cacheKey, clone, cloningSession, refreshCascade, false, false); ((UnitOfWorkValueHolder)result).privilegedSetValue(newObject); ((UnitOfWorkValueHolder)result).setInstantiated();
/** * Set the object. */ public void setValue(Object theValue) { super.setValue(theValue); if (getWrappedServerValueHolder() != null) { // This is a local setting of remote value holder // and will only happen with basic indirection getWrappedServerValueHolder().setValue(theValue); } }
public Object getAttributeValueFromObject(Object object) { if(isValueHolderProperty) { ValueHolderInterface vh = (ValueHolderInterface)ormAccessor.getAttributeValueFromObject(object); if(vh != null && !vh.isInstantiated()) { Object value = vh.getValue(); oxmAccessor.setAttributeValueInObject(object, value); if(vh instanceof WeavedAttributeValueHolderInterface) { ((WeavedAttributeValueHolderInterface)vh).setIsCoordinatedWithProperty(true); } } } return oxmAccessor.getAttributeValueFromObject(object); }
/** * INTERNAL: * Return a backup clone of the attribute. */ public Object backupCloneAttribute(Object attributeValue, Object clone, Object backup, UnitOfWorkImpl unitOfWork) { //no need to check if the attribute is a valueholder because closeAttribute // should always be called first ValueHolderInterface valueHolder = (ValueHolderInterface)attributeValue;// cast the value ValueHolderInterface result = null; // delay instantiation until absolutely necessary if ((!(valueHolder instanceof UnitOfWorkValueHolder)) || valueHolder.isInstantiated()) { result = new ValueHolder(); result.setValue(super.backupCloneAttribute(valueHolder.getValue(), clone, backup, unitOfWork)); } else { // Backup value holder will be instantiated when uow vh is, to get original value, // backup must also know about the uow vh, in case it needs to get its value. result = new BackupValueHolder(valueHolder); ((UnitOfWorkValueHolder)valueHolder).setBackupValueHolder(result); } return result; }
result.setValue(this.mapping.buildCloneForPartObject(valueHolder.getValue(), original, null, clone, cloningSession, refreshCascade, false, false)); } else { Object newObject = this.mapping.buildCloneForPartObject(valueHolder.getValue(), original, cacheKey, clone, cloningSession, refreshCascade, false, false); ((UnitOfWorkValueHolder)result).privilegedSetValue(newObject); ((UnitOfWorkValueHolder)result).setInstantiated();
/** * Set the object. */ public void setValue(Object theValue) { super.setValue(theValue); if (getWrappedServerValueHolder() != null) { // This is a local setting of remote value holder // and will only happen with basic indirection getWrappedServerValueHolder().setValue(theValue); } }
public Object getAttributeValueFromObject(Object object) { if(isValueHolderProperty) { ValueHolderInterface vh = (ValueHolderInterface)ormAccessor.getAttributeValueFromObject(object); if(vh != null && !vh.isInstantiated()) { Object value = vh.getValue(); oxmAccessor.setAttributeValueInObject(object, value); if(vh instanceof WeavedAttributeValueHolderInterface) { ((WeavedAttributeValueHolderInterface)vh).setIsCoordinatedWithProperty(true); } } } return oxmAccessor.getAttributeValueFromObject(object); }
if (wrapperValue instanceof ValueHolderInterface) { ValueHolderInterface vh = (ValueHolderInterface) wrapperValue; if (vh.isInstantiated()) { oldValue = vh.getValue(); vh.setValue(value); wrapper.isSet(true);
/** * INTERNAL: * Return the "real" attribute value, as opposed to any wrapper. * This will trigger the wrapper to instantiate the value. */ public Object getRealAttributeValueFromObject(Object object, Object attribute) { if (attribute instanceof ValueHolderInterface) { return ((ValueHolderInterface)attribute).getValue(); } else { return attribute; } }
/** * INTERNAL: * Return whether the specified object is instantiated. */ public boolean objectIsInstantiated(Object object) { return ((ValueHolderInterface)object).isInstantiated(); }
/** * Set the object. */ public void setValue(Object theValue) { super.setValue(theValue); if (getWrappedServerValueHolder() != null) { // This is a local setting of remote value holder // and will only happen with basic indirection getWrappedServerValueHolder().setValue(theValue); } }
/** * INTERNAL: * Return a backup clone of the attribute. */ public Object backupCloneAttribute(Object attributeValue, Object clone, Object backup, UnitOfWorkImpl unitOfWork) { //no need to check if the attribute is a valueholder because closeAttribute // should always be called first ValueHolderInterface valueHolder = (ValueHolderInterface)attributeValue;// cast the value ValueHolder result = new ValueHolder(); // delay instantiation until absolutely necessary if ((!(valueHolder instanceof UnitOfWorkValueHolder)) || valueHolder.isInstantiated()) { result.setValue(super.backupCloneAttribute(valueHolder.getValue(), clone, backup, unitOfWork)); } else { ((UnitOfWorkValueHolder)valueHolder).setBackupValueHolder(result); } return result; }
if (wrapperValue instanceof ValueHolderInterface) { ValueHolderInterface vh = (ValueHolderInterface) wrapperValue; if (vh.isInstantiated()) { oldValue = vh.getValue(); vh.setValue(value); wrapper.isSet(true);
/** * INTERNAL: This method can be used when an Indirection Object is required * to be built from a provided ValueHolderInterface object. This may be used * for custom value holder types. Certain policies like the * TransparentIndirectionPolicy may wrap the valueholder in another object. */ public Object buildIndirectObject(ValueHolderInterface valueHolder){ return valueHolder.getValue(); }
/** * INTERNAL: * Return whether the specified object is instantiated. */ public boolean objectIsInstantiated(Object object) { return ((ValueHolderInterface)object).isInstantiated(); }