private void updateOneToOneAssociation(final NakedObject object, final OneToOneAssociation field, final Data fieldData) { if (fieldData == null) { field.initAssociation(object, null); } else { NakedObject ref = recreateReference(fieldData); if (field.get(object) != ref) { LOG.debug(" association " + field + " changed to " + ref.getOid()); field.initAssociation(object, ref); } } }
referencedNakedObject = (NakedObject) oneToOneAssociation.get(object);
Naked referencedObject = oneToOneAssociation.get(fieldPlace.getObject());
/** * * @param value - expected to be a {@link NakedObject}. */ protected void doSet(Object value) { NakedObject valueNO = (NakedObject) value; if (value != null) { getOneToOneAssociation().setAssociation(getNakedObject(), valueNO); } else { NakedObject currentAssociate = (NakedObject) getOneToOneAssociation().get(getNakedObject()); getOneToOneAssociation().clearAssociation(getNakedObject(), currentAssociate); } }
private void createFieldData(final NakedObject object, ObjectData data, NakedObjectField field) { Object fieldData; if (field.isCollection()) { NakedCollection coll = (NakedCollection) field.get(object); fieldData = createCollectionData(coll); } else if (field.isObject()) { NakedObject ref = (NakedObject) ((OneToOneAssociation) field).get(object); fieldData = createReferenceData(ref); } else if (field.isValue()) { NakedValue value = (NakedValue) field.get(object); fieldData = value.asEncodedString(); } else { throw new UnknownTypeException(field); } data.addField(field.getId(), fieldData); }