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/03 23:03:55 UTC

svn commit: r452622 - in /incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne: CAYObjectId.h CAYObjectId.m

Author: torehalset
Date: Tue Oct  3 14:03:54 2006
New Revision: 452622

URL: http://svn.apache.org/viewvc?view=rev&rev=452622
Log:
 * removed replacementIdMap as it looks like it is only useable on
   the server
 * handle compound primary key in isEqual

Modified:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h?view=diff&rev=452622&r1=452621&r2=452622
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h Tue Oct  3 14:03:54 2006
@@ -27,7 +27,7 @@
 	NSString *singleKey;
 	NSObject *singleValue;
 	NSData *tempKey;
-	NSDictionary *replacementIdMap;
+
 }
 
 -(void)setEntityName:(NSString *)en;
@@ -40,7 +40,5 @@
 -(NSObject *)singleValue;
 -(void)setTempKey:(NSData *)k;
 -(NSData *)tempKey;
--(void)setReplacementIdMap:(NSDictionary *)rm;
--(NSDictionary *)replacementIdMap;
 
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m?view=diff&rev=452622&r1=452621&r2=452622
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m Tue Oct  3 14:03:54 2006
@@ -30,7 +30,9 @@
 	[self setSingleKey:[coder decodeObjectForKey:@"singleKey"]];
 	[self setSingleValue:[coder decodeObjectForKey:@"singleValue"]];
 	[self setTempKey:[coder decodeObjectForKey:@"key"]];
-	[self setReplacementIdMap:[coder decodeObjectForKey:@"replacementIdMap"]];
+    
+    // TODO: should not need to convert NSNull to nil. create
+    // a nicer solution
     
     // check/repair tempKey
     if([[self tempKey] isKindOfClass:[NSNull class]])
@@ -39,7 +41,19 @@
     }
     else if([self tempKey])
     {
-        NSLog(@"ERROR: got tempKey from server %@", self);
+        NSLog(@"WARN: got tempKey from server %@", self);
+    }
+    
+    // repair singleKey
+    if([[self singleKey] isKindOfClass:[NSNull class]])
+    {
+        [self setSingleKey:nil];
+    }
+    
+    // repair objectIdKeys
+    if([[self objectIdKeys] isKindOfClass:[NSNull class]])
+    {
+        [self setObjectIdKeys:nil];
     }
     
 	return self;
@@ -47,15 +61,15 @@
 
 -(void)encodeWithCoder:(NSCoder*)coder
 {
-	[coder encodeObject:entityName forKey:@"entityName"];
-    [coder encodeObject:singleKey forKey:@"singleKey"];
-    [coder encodeObject:singleValue forKey:@"singleValue"];
-    [coder encodeObject:objectIdKeys forKey:@"objectIdKeys"];
-    [coder encodeObject:replacementIdMap forKey:@"replacementIdMap"];
+	[coder encodeObject:[self entityName] forKey:@"entityName"];
+    [coder encodeObject:[self singleKey] forKey:@"singleKey"];
+    [coder encodeObject:[self singleValue] forKey:@"singleValue"];
+    [coder encodeObject:[self objectIdKeys] forKey:@"objectIdKeys"];
+    
     // TODO: fix problem: the key "key" result in a ugly unserialize exception at the server side.
     if([self tempKey])
     {
-        [coder encodeObject:tempKey forKey:@"key"];
+        [coder encodeObject:[self tempKey] forKey:@"key"];
     }
 }
 
@@ -131,18 +145,6 @@
 	return tempKey;
 }
 
- -(void)setReplacementIdMap:(NSDictionary *)rm
- {
-	 [rm retain];
-	 [replacementIdMap release];
-	 replacementIdMap = rm;
- }
- 
- -(NSDictionary *)replacementIdMap
- {
-	 return replacementIdMap;
- }
-
 - (unsigned)hash
 {
 	/*
@@ -179,6 +181,13 @@
             return NO;
         }
     }
+    if([self objectIdKeys])
+    {
+        if(![[self objectIdKeys] isEqualToDictionary:[anObject objectIdKeys]])
+        {
+            return NO;
+        }
+    }
     if([self tempKey])
     {
         if(![[self tempKey] isEqualToData:[anObject tempKey]])
@@ -195,16 +204,20 @@
     NSString *result;
     if([self tempKey])
     {
-        result = [[NSString alloc] initWithFormat:@"CAYObjectId {%@; tempKey = %@}", [self entityName], [self tempKey]];
+        result = [[NSString alloc] initWithFormat:@"%@ {%@; TEMP: %@}", [self class], [self entityName], [self tempKey]];
     }
     else if ([self singleKey])
     {
-        result = [[NSString alloc] initWithFormat:@"CAYObjectId {%@; %@ = %@}", [self entityName], [self singleKey], [self singleValue]];
+        result = [[NSString alloc] initWithFormat:@"%@ {%@; %@ = %@}", [self class], [self entityName], [self singleKey], [self singleValue]];
+    }
+    else if ([self objectIdKeys])
+    {
+        result = [[NSString alloc] initWithFormat:@"%@ {%@; objectIdKeys = %@}", [self class], [self entityName], [self objectIdKeys]];
     }
     else
     {
         // should match one of the above. if not, output all values
-        result = [[NSString alloc] initWithFormat:@"CAYObjectId {%@; objectIdKeys = %@; singleKey = %@; singleValue = %@; tempKey = %@}", [self entityName], [self objectIdKeys], [self singleKey], [self singleValue], [self tempKey]];
+        result = [[NSString alloc] initWithFormat:@"%@ {%@; objectIdKeys = %@; singleKey = %@; singleValue = %@}", [self class], [self entityName], [self objectIdKeys], [self singleKey], [self singleValue]];
     }
     [result autorelease];
     return result;
@@ -217,7 +230,6 @@
     [self setSingleKey:nil];
     [self setSingleValue:nil];
     [self setTempKey:nil];
-    [self setReplacementIdMap:nil];
 	[super dealloc];
 }