You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by to...@apache.org on 2006/10/16 22:34:30 UTC
svn commit: r464653 - in
/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne: CAYEntityResolver.h
CAYEntityResolver.m CAYObjectContext.m
Author: torehalset
Date: Mon Oct 16 13:34:27 2006
New Revision: 464653
URL: http://svn.apache.org/viewvc?view=rev&rev=464653
Log:
faster and better CAYEntityResolver.lookupObjEntity
Modified:
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h?view=diff&rev=464653&r1=464652&r2=464653
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h Mon Oct 16 13:34:27 2006
@@ -34,6 +34,7 @@
-(NSMutableDictionary *)classMapping;
-(void)updateClassMapping;
+
-(CAYObjEntity *)objEntityForClass:(Class)cl;
-(CAYObjEntity *)lookupObjEntity:(CAYPersistentObject *)dataObject;
Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m?view=diff&rev=464653&r1=464652&r2=464653
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m Mon Oct 16 13:34:27 2006
@@ -77,7 +77,7 @@
// TODO: handle more than one map?
CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
- //NSLog(@"datamap.name: %@", [dataMap valueForKey:@"name"]);
+ //NSLog(@"DEBUG: datamap.name: %@", [dataMap valueForKey:@"name"]);
NSMutableDictionary *objEntityMap = [dataMap objEntityMap];
NSEnumerator *enumerator = [objEntityMap keyEnumerator];
@@ -103,7 +103,7 @@
{
// TODO: handle more than one map?
CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
- //NSLog(@"datamap.name: %@", [dataMap valueForKey:@"name"]);
+ //NSLog(@"DEBUG: datamap.name: %@", [dataMap valueForKey:@"name"]);
NSMutableDictionary *objEntityMap = [dataMap objEntityMap];
// TODO: cache the lookup using a NSDictionary!
@@ -119,12 +119,28 @@
}
}
+ NSLog(@"ERROR: Could not find ObjEntity for class %@", cl);
+
return nil;
}
-(CAYObjEntity *)lookupObjEntity:(CAYPersistentObject *)dataObject
{
- return [self objEntityForClass:[dataObject class]];
+ // TODO: handle more than one map?
+ CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
+ //NSLog(@"DEBUG: datamap.name: %@", [dataMap valueForKey:@"name"]);
+ NSMutableDictionary *objEntityMap = [dataMap objEntityMap];
+
+ CAYObjectId *oid = [dataObject objectId];
+ NSString *entityName = [oid entityName];
+ CAYObjEntity *entity = [objEntityMap valueForKey:entityName];
+
+ if(!entity)
+ {
+ NSLog(@"ERROR: Could not find ObjEntity for object %@", dataObject);
+ }
+
+ return entity;
}
-(NSString *)description
Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m?view=diff&rev=464653&r1=464652&r2=464653
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m Mon Oct 16 13:34:27 2006
@@ -265,6 +265,7 @@
NSData *randomdata = [[NSData alloc] initWithBytes:&randombytes length:8];
CAYObjectId *oid = [[CAYObjectId alloc] init];
+ // need to search by class as o does not have an ObjectId with entityName yet
CAYObjEntity *objEntity = [[self entityResolver] objEntityForClass:[o class]];
[oid setEntityName:[objEntity name]];
[oid setTempKey:randomdata];