}
    public void updateSourceObject(NSArray newValues) {        Object realSourceObject = realSourceObject();        String realRelationshipKey = realRelationshipKey();        newValues = newValues != null ? newValues : NSArray.EmptyArray;                if(realSourceObject instanceof EOEnterpriseObject && // only add/remove if we have an EO and handle a relationship                ((EOEnterpriseObject)realSourceObject).classDescriptionForDestinationKey(realRelationshipKey) != null) {            EOEnterpriseObject eo = (EOEnterpriseObject)realSourceObject;            NSArray currentValues = (NSArray) eo.valueForKey(realRelationshipKey);            currentValues = currentValues != null ? currentValues : NSArray.EmptyArray;                        for (int i = currentValues.count() - 1; i >= 0; i--) {                EOEnterpriseObject o = (EOEnterpriseObject)currentValues.objectAtIndex(i);                if(newValues.indexOfIdenticalObject(o) == NSArray.NotFound) { // not found                    eo.removeObjectFromBothSidesOfRelationshipWithKey(o, realRelationshipKey);                }            }                        for (int i = newValues.count() - 1; i >= 0; i--) {                EOEnterpriseObject o = (EOEnterpriseObject)newValues.objectAtIndex(i);                if(currentValues.indexOfIdenticalObject(o) == NSArray.NotFound) {  // not found                    eo.addObjectToBothSidesOfRelationshipWithKey(o, realRelationshipKey);                }            }        } else {            // NOTE ak: this implementation is different from what JavaWOExtensions do.             // There, the existing array is fetched and added to/removed from. Here, we simply set the            // new array. I changed this because it looked like a bad idea to change the array without            // the sourceObjects's knowledge.            NSKeyValueCoding.Utility.takeValueForKey(realSourceObject,                     (newValues instanceof NSMutableArray) ? newValues : newValues.mutableClone(),                             realRelationshipKey);        }    }