public void processRelationships(EODatabase database, NSArray gids, NSDictionary snapshots, Object context, SynchronizerSettings settings) {
Enumeration gidsEnum = gids.objectEnumerator();
while (gidsEnum.hasMoreElements()) {
EOKeyGlobalID gid = (EOKeyGlobalID) gidsEnum.nextElement();
processGID(database, gid, context, settings);
EOEntity entity = database.entityNamed(gid.entityName());
NSDictionary snapshot = (NSDictionary) snapshots.objectForKey(gid);
Enumeration relationshipsEnum = entity.relationships().objectEnumerator();
while (relationshipsEnum.hasMoreElements()) {
EORelationship relationship = (EORelationship) relationshipsEnum.nextElement();
if (!relationship.isToMany()) {
EORelationship inverseRelationship = relationship.inverseRelationship();
if (inverseRelationship != null && inverseRelationship.isToMany()) {
EOEntity destEntity = inverseRelationship.entity();
NSDictionary destPK = relationship._foreignKeyForSourceRow(snapshot);
EOGlobalID destGID = destEntity.globalIDForRow(destPK);
if (destGID != null) {
processRelationship(database, gid, relationship, destGID, inverseRelationship, context, settings);
}
}
}