*/
public static NSSet verifyAllSnapshots() {
NSMutableSet mismatches = new NSMutableSet();
NSMutableSet verifiedDatabases = new NSMutableSet();
EOEditingContext editingContext = ERXEC.newEditingContext();
EOModelGroup modelGroup = EOModelGroup.defaultGroup();
Enumeration modelsEnum = modelGroup.models().objectEnumerator();
while (modelsEnum.hasMoreElements()) {
EOModel model = (EOModel) modelsEnum.nextElement();
EODatabaseContext databaseContext = null;
try {
databaseContext = EODatabaseContext.registeredDatabaseContextForModel(model, editingContext);
}
catch (IllegalStateException e) {
log.warn("Model " + model.name() + " failed: " + e.getMessage());
}
if (databaseContext != null) {
databaseContext.lock();
try {
EODatabase database = databaseContext.database();
if (!verifiedDatabases.containsObject(database)) {
Enumeration gidEnum = database.snapshots().keyEnumerator();
while (gidEnum.hasMoreElements()) {
EOGlobalID gid = (EOGlobalID) gidEnum.nextElement();
if (gid instanceof EOKeyGlobalID) {
EOEnterpriseObject eo = null;
EOKeyGlobalID keyGID = (EOKeyGlobalID) gid;
String entityName = keyGID.entityName();
EOEntity entity = modelGroup.entityNamed(entityName);
NSDictionary snapshot = database.snapshotForGlobalID(gid);
if (snapshot != null) {
EOQualifier gidQualifier = entity.qualifierForPrimaryKey(entity.primaryKeyForGlobalID(gid));
EOFetchSpecification gidFetchSpec = new EOFetchSpecification(entityName, gidQualifier, null);