Author: torehalset
Date: Wed Oct 25 14:04:44 2006
New Revision: 467765

URL: http://svn.apache.org/viewvc?view=rev&rev=467765
Log:
better persistent object description

Modified:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m

Modified: 
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m?view=diff&rev=467765&r1=467764&r2=467765
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m 
(original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m 
Wed Oct 25 14:04:44 2006
@@ -89,9 +89,33 @@
 
 -(NSString *)description
 {
+    NSMutableDictionary *descvalues = [[NSMutableDictionary alloc] init];
+    NSEnumerator *enumerator = [values keyEnumerator];
+    NSString *attrname;
+    while(attrname = [enumerator nextObject])
+    {
+        id value = [values objectForKey:attrname];
+        if([value isKindOfClass:[CAYPersistentObject class]])
+        {
+            [descvalues setObject:[value objectId] forKey:attrname];
+        }
+        else if ([value isKindOfClass:[NSArray class]])
+        {
+            [descvalues setObject:@"(..)" forKey:attrname];
+        }
+        else if ([value isKindOfClass:[CAYFault class]])
+        {
+            [descvalues setObject:@"?" forKey:attrname];
+        }
+        else
+        {
+            [descvalues setObject:value forKey:attrname];
+        }
+    }
+    
     NSString *result;
-       // TODO: it is dangerous to include relational values as it can result 
in a neverending loop..
-    result = [[NSString alloc] initWithFormat:@"%@ {objectContext = %@; 
objectId = %@; values = [EMAIL PROTECTED]", [self class], [self objectContext], 
[self objectId], /*values*/ @"...(TODO)...)"];
+    result = [[NSString alloc] initWithFormat:@"%@ {objectId = %@; values = 
[EMAIL PROTECTED]", [self class], [self objectId], descvalues];
+    [descvalues release];
     [result autorelease];
     return result;
 }


Reply via email to