/** * INTERNAL: * Object reference must unwrap the reference object if required. */ public Object getRealAttributeValueFromObject(Object object, AbstractSession session) { Object value = super.getRealAttributeValueFromObject(object, session); value = getReferenceDescriptor().getObjectBuilder().unwrapObject(value, session); return value; }
/** * INTERNAL: * Return the value of an attribute, unwrapping value holders if necessary. * Also check to ensure the collection is a vector. */ public Object getRealAttributeValueFromObject(Object object, AbstractSession session) throws DescriptorException { Object value = super.getRealAttributeValueFromObject(object, session); if (value != null) { if (!getContainerPolicy().isValidContainer(value)) { throw DescriptorException.attributeTypeNotValid(this); } } return value; }
if (value != null) { Object unwrappedValue = partner.getDescriptor().getObjectBuilder().unwrapObject(value, getSession()); Object oldParent = partner.getRealAttributeValueFromObject(unwrappedValue, getSession()); Object sourceObject = getRelationshipSourceObject();
if (value != null) { Object unwrappedValue = partner.getDescriptor().getObjectBuilder().unwrapObject(value, getSession()); Object oldParent = partner.getRealAttributeValueFromObject(unwrappedValue, getSession()); Object sourceObject = getRelationshipSourceObject(); Object wrappedSource = getMapping().getDescriptor().getObjectBuilder().wrapObject(sourceObject, getSession()); partner.setRealAttributeValueInObject(unwrappedOldValue, null); } else if (partner.isCollectionMapping()) { partner.getContainerPolicy().removeFrom(sourceObject, partner.getRealAttributeValueFromObject(unwrappedOldValue, getSession()), getSession());