public void removeToManyTarget(String relName, DataObject value, boolean setReverse) { // Now do the rest of the normal handling (regardless of whether it was // flattened or not) Object holder = readProperty(relName); // call 'propertyChanged' AFTER readProperty as readProperty ensures // that this // object fault is resolved getObjectContext().propertyChanged(this, relName, value, null); // TODO: andrus 8/20/2007 - can we optimize this somehow, avoiding type // checking?? if (holder instanceof Collection) { ((Collection<Object>) holder).remove(value); } else if (holder instanceof Map) { ((Map<Object, Object>) holder).remove(getMapKey(relName, value)); } if (value != null && setReverse) { unsetReverseRelationship(relName, value); } }
public void removeToManyTarget(String relName, DataObject value, boolean setReverse) { // Now do the rest of the normal handling (regardless of whether it was // flattened or not) List relList = (List) readProperty(relName); // call 'recordArcDeleted' AFTER readProperty as readProperty ensures that this // object fault is resolved getDataContext().getObjectStore().recordArcDeleted( this, value != null ? value.getObjectId() : null, relName); relList.remove(value); if (persistenceState == PersistenceState.COMMITTED) { persistenceState = PersistenceState.MODIFIED; } if (value != null && setReverse) { unsetReverseRelationship(relName, value); } }
public void setToOneTarget(String relationshipName, DataObject value, boolean setReverse) { willConnect(relationshipName, value); Object oldTarget = readProperty(relationshipName); if (oldTarget == value) { return; } getObjectContext().propertyChanged(this, relationshipName, oldTarget, value); if (setReverse) { // unset old reverse relationship if (oldTarget instanceof DataObject) { unsetReverseRelationship(relationshipName, (DataObject) oldTarget); } // set new reverse relationship if (value != null) { setReverseRelationship(relationshipName, value); } } objectContext.prepareForAccess(this, relationshipName, false); writePropertyDirectly(relationshipName, value); }
public void setToOneTarget( String relationshipName, DataObject value, boolean setReverse) { willConnect(relationshipName, value); Object oldTarget = readProperty(relationshipName); if (oldTarget == value) { return; } getDataContext().getObjectStore().recordArcCreated( this, value != null ? value.getObjectId() : null, relationshipName); if (setReverse) { // unset old reverse relationship if (oldTarget instanceof DataObject) { unsetReverseRelationship(relationshipName, (DataObject) oldTarget); } // set new reverse relationship if (value != null) { setReverseRelationship(relationshipName, value); } } objectContext.prepareForAccess(this, relationshipName); writePropertyDirectly(relationshipName, value); }