protected void handleSave(EOEditingContext ec, String typeKey, NSArray objects) {
if (objects == null)
return;
for (Enumeration e = objects.objectEnumerator(); e.hasMoreElements();) {
EOEnterpriseObject eo = (EOEnterpriseObject) e.nextElement();
Configuration config = configuration.objectForKey(eo.entityName());
if (config != null) {
if (config.isAudited) {
handleSave(ec, typeKey, eo);
} else {
for (Enumeration e1 = config.notificationKeys.objectEnumerator(); e1.hasMoreElements();) {
String key = (String) e1.nextElement();
EOEnterpriseObject target = (EOEnterpriseObject) eo.valueForKey(key);
EOEntity entity = ERXEOAccessUtilities.entityForEo(eo);
String inverse = entity.relationshipNamed(key).anyInverseRelationship().name();
if (typeKey.equals(EOEditingContext.UpdatedKey)) {
handleUpdate(ec, target, inverse, eo);
} else if (typeKey.equals(EOEditingContext.InsertedKey)) {
handleAdd(ec, target, inverse, eo);
} else if (typeKey.equals(EOEditingContext.DeletedKey)) {
target = (EOEnterpriseObject) ec.committedSnapshotForObject(eo).valueForKey(key);
handleRemove(ec, target, inverse, eo);
}
}
}
}
}
}