cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From torehal...@apache.org
Subject svn commit: r440161 - in /incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne: ./ CocoaCayenne.xcodeproj/
Date Mon, 04 Sep 2006 19:53:54 GMT
Author: torehalset
Date: Mon Sep  4 12:53:52 2006
New Revision: 440161

URL: http://svn.apache.org/viewvc?view=rev&rev=440161
Log:
 * started to implement arc handling and CAYManagedArray
 * some memory-cleanups

Added:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.m
Modified:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.h?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.h Mon Sep  4
12:53:52 2006
@@ -0,0 +1,37 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import "CAYNodeDiff.h"
+
+@interface CAYArcCreateOperation : CAYNodeDiff <NSCoding> {
+
+    NSObject *targetNodeId;
+    NSObject *arcId;
+    
+}
+
+-(id)initWithNodeId:(NSObject *)nid targetNodeId:(NSObject *)tnid arcId:(NSObject *)aid;
+
+-(void)setTargetNodeId:(NSObject *)o;
+-(NSObject *)targetNodeId;
+-(void)setArcId:(NSObject *)o;
+-(NSObject *)arcId;
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.m?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcCreateOperation.m Mon Sep  4
12:53:52 2006
@@ -0,0 +1,83 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import "CAYArcCreateOperation.h"
+
+
+@implementation CAYArcCreateOperation
+
+-(id)initWithNodeId:(NSObject *)nid targetNodeId:(NSObject *)tnid arcId:(NSObject *)aid
+{
+    self = [super initWithNodeId:nid];
+    if(self)
+    {
+        [self setTargetNodeId:tnid];
+        [self setArcId:aid];
+    }
+    return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+	[super initWithCoder:coder];
+    [self setTargetNodeId:[coder decodeObjectForKey:@"targetNodeId"]];
+    [self setArcId:[coder decodeObjectForKey:@"arcId"]];
+	return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+    [super encodeWithCoder:coder];
+	[coder encodeObject:targetNodeId forKey:@"targetNodeId"];
+	[coder encodeObject:arcId forKey:@"arcId"];
+}
+
+-(void)setTargetNodeId:(NSObject *)o
+{
+    [o retain];
+    [targetNodeId release];
+    targetNodeId = o;
+}
+
+-(NSObject *)targetNodeId
+{
+    return targetNodeId;
+}
+
+-(void)setArcId:(NSObject *)o
+{
+    [o retain];
+    [arcId release];
+    arcId = o;
+}
+
+-(NSObject *)arcId
+{
+    return arcId;
+}
+
+-(void)dealloc
+{
+	[self setTargetNodeId:nil];
+	[self setArcId:nil];
+	[super dealloc];
+}
+
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.h?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.h Mon Sep  4
12:53:52 2006
@@ -0,0 +1,37 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import "CAYNodeDiff.h"
+
+@interface CAYArcDeleteOperation : CAYNodeDiff <NSCoding> {
+
+    NSObject *targetNodeId;
+    NSObject *arcId;
+    
+}
+
+-(id)initWithNodeId:(NSObject *)nid targetNodeId:(NSObject *)tnid arcId:(NSObject *)aid;
+
+-(void)setTargetNodeId:(NSObject *)o;
+-(NSObject *)targetNodeId;
+-(void)setArcId:(NSObject *)o;
+-(NSObject *)arcId;
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.m?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYArcDeleteOperation.m Mon Sep  4
12:53:52 2006
@@ -0,0 +1,82 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import "CAYArcDeleteOperation.h"
+
+
+@implementation CAYArcDeleteOperation
+
+-(id)initWithNodeId:(NSObject *)nid targetNodeId:(NSObject *)tnid arcId:(NSObject *)aid
+{
+    self = [super initWithNodeId:nid];
+    if(self)
+    {
+        [self setTargetNodeId:tnid];
+        [self setArcId:aid];
+    }
+    return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+	[super initWithCoder:coder];
+    [self setTargetNodeId:[coder decodeObjectForKey:@"targetNodeId"]];
+    [self setArcId:[coder decodeObjectForKey:@"arcId"]];
+	return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+    [super encodeWithCoder:coder];
+	[coder encodeObject:targetNodeId forKey:@"targetNodeId"];
+	[coder encodeObject:arcId forKey:@"arcId"];
+}
+
+-(void)setTargetNodeId:(NSObject *)o
+{
+    [o retain];
+    [targetNodeId release];
+    targetNodeId = o;
+}
+
+-(NSObject *)targetNodeId
+{
+    return targetNodeId;
+}
+
+-(void)setArcId:(NSObject *)o
+{
+    [o retain];
+    [arcId release];
+    arcId = o;
+}
+
+-(NSObject *)arcId
+{
+    return arcId;
+}
+
+-(void)dealloc
+{
+	[self setTargetNodeId:nil];
+	[self setArcId:nil];
+	[super dealloc];
+}
+
+@end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m Mon Sep  4 12:53:52
2006
@@ -47,6 +47,8 @@
     [classMapping setObject:@"CAYNodePropertyChangeOperation" forKey:@"org.objectstyle.cayenne.graph.NodePropertyChangeOperation"];
     [classMapping setObject:@"CAYNodeDeleteOperation" forKey:@"org.objectstyle.cayenne.graph.NodeDeleteOperation"];
     [classMapping setObject:@"CAYNodeIdChangeOperation" forKey:@"org.objectstyle.cayenne.graph.NodeIdChangeOperation"];
+    [classMapping setObject:@"CAYArcCreateOperation" forKey:@"org.objectstyle.cayenne.graph.ArcCreateOperation"];
+    [classMapping setObject:@"CAYArcDeleteOperation" forKey:@"org.objectstyle.cayenne.graph.ArcDeleteOperation"];
     
     return classMapping;
 }

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.h?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.h Mon Sep  4 12:53:52
2006
@@ -0,0 +1,31 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import "CAYObjectContext.h"
+
+@interface CAYManagedArray : NSMutableArray {
+    NSMutableArray *content;
+    CAYObjectContext *objectContext;
+}
+
+-(void)setObjectContext:(CAYObjectContext *)ctxt;
+-(CAYObjectContext *)objectContext;
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.m?view=auto&rev=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYManagedArray.m Mon Sep  4 12:53:52
2006
@@ -0,0 +1,100 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import "CAYManagedArray.h"
+#import "CAYPersistentObject.h"
+
+@implementation CAYManagedArray
+
+-(id)init
+{
+    self = [super init];
+    if(self)
+    {
+       content = [[NSMutableArray alloc] init];
+    }
+    return self;
+}
+
+- (unsigned)count
+{
+    return [content count];
+}
+
+- (id)objectAtIndex:(unsigned)index
+{
+    return [content objectAtIndex:index];
+}
+
+- (void)addObject:(id)anObject
+{
+    if([anObject isKindOfClass:[CAYPersistentObject class]])
+    {
+        if(![anObject objectContext])
+        {
+            [[self objectContext] registerNewObject:anObject];
+        }
+    }
+    [content addObject:anObject];
+}
+
+- (void)insertObject:(id)anObject atIndex:(unsigned)index
+{
+    [content insertObject:anObject atIndex:index];
+}
+
+- (void)removeLastObject
+{
+    [content removeLastObject];
+}
+
+- (void)removeObjectAtIndex:(unsigned)index
+{
+    [content removeObjectAtIndex:index];
+}
+
+- (void)replaceObjectAtIndex:(unsigned)index withObject:(id)anObject
+{
+    [content replaceObjectAtIndex:index withObject:anObject];
+}
+
+-(void)setObjectContext:(CAYObjectContext *)ctxt
+{
+    // do not need to retain/release as ctxt is our master
+	//[ctxt retain];
+	//[objectContext release];
+	objectContext = ctxt;
+}
+
+-(CAYObjectContext *)objectContext
+{
+	return objectContext;
+}
+
+
+-(void)dealloc
+{
+    [content release];
+    content = nil;
+    [self setObjectContext:nil];
+	[super dealloc];
+}
+
+
+@end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h Mon Sep  4 12:53:52
2006
@@ -28,9 +28,10 @@
 	CAYClientConnection *connection;
     NSMutableArray *diffs;
     CAYEntityResolver *entityResolver;
+    NSMutableDictionary *objectByObjectId;
 }
 
--(NSArray *)performQyery:(CAYQuery *)q;
+-(NSArray *)performQuery:(CAYQuery *)q;
 
 -(void)setConnection:(CAYClientConnection *)c;
 -(CAYClientConnection *)connection;

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m Mon Sep  4 12:53:52
2006
@@ -43,11 +43,12 @@
     if(self != nil)
     {
         diffs = [[NSMutableArray array] retain];
+        objectByObjectId = [[NSMutableDictionary alloc] init];
     }
     return self;
 }
 
--(NSArray *)performQyery:(CAYQuery *)query
+-(NSArray *)performQuery:(CAYQuery *)query
 {
 	CAYQueryMessage *queryMessage = [[CAYQueryMessage alloc] init];
 	[queryMessage setQuery:query];
@@ -65,6 +66,20 @@
         id row = [rows objectAtIndex:i];
         if([row isKindOfClass:[CAYPersistentObject class]])
         {
+        
+            // try to look for old with same context
+            CAYPersistentObject *old = (CAYPersistentObject *)[objectByObjectId objectForKey:[row
objectId]];
+            if(old)
+            {
+                NSLog(@"old exist for oid %@", [row objectId]);
+                // TODO: copy new into old
+            }
+            else
+            {
+                NSLog(@"old does not exist for oid %@", [row objectId]);
+                [objectByObjectId setObject:row forKey:[row objectId]];
+            }
+        
             [row setObjectContext:self];
             // TODO: set initial persistant state
             // TODO: check for existing objects in context with same ObjectId
@@ -96,6 +111,8 @@
             {
                 NSLog(@"ERROR: Could not find ObjEntity for class %@", [row class]);
             }
+            
+            
         }
     }
     
@@ -136,8 +153,6 @@
     [bootstrapMsg release];
     
     // update class mapping based on EntityResolver
-    //[[self entityResolver] updateClassMapping];
-    //[[self connection] updateClassMapping];
     [self updateClassMapping];
 }
 
@@ -209,7 +224,22 @@
     [diffs addObject:diff];
     [diff release];
     
+    [objectByObjectId setObject:o forKey:oid];
+    
     // TODO: init values with NSNull objects?
+    
+    NSEnumerator *enumerator = [[objEntity attributes] objectEnumerator];
+    NSString *attribute;
+    while(attribute = [enumerator nextObject])
+    {
+        NSLog(@"check if object has value for %@", attribute);
+        if(![[o valuesRaw] objectForKey:attribute])
+        {
+            NSLog(@"setting %@ to NSNull", attribute);
+            [[o valuesRaw] setObject:[NSNull null] forKey:attribute];
+        }
+    }
+    
     [randomdata release];
     [oid release];
     [o release];
@@ -248,8 +278,11 @@
 -(void)dealloc
 {
 	[self setConnection:nil];
-    [diffs release];
     [self setEntityResolver:nil];
+    [diffs release];
+    diffs = nil;
+    [objectByObjectId release];
+    objectByObjectId = nil;
 	[super dealloc];
 }
 

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m Mon Sep  4 12:53:52
2006
@@ -195,5 +195,15 @@
     return result;
 }
 
+-(void)dealloc
+{
+    [self setEntityName:nil];
+    [self setObjectIdKeys:nil];
+    [self setSingleKey:nil];
+    [self setSingleValue:nil];
+    [self setTempKey:nil];
+    [self setReplacementIdMap:nil];
+	[super dealloc];
+}
 
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m Mon Sep  4 12:53:52
2006
@@ -71,8 +71,9 @@
 
 -(void)setObjectContext:(CAYObjectContext *)ctxt
 {
-	[ctxt retain];
-	[objectContext release];
+    // do not need to retain/release as ctxt is our master
+	//[ctxt retain];
+	//[objectContext release];
 	objectContext = ctxt;
 }
 
@@ -135,9 +136,10 @@
 
 -(void)dealloc
 {
-	[objectId release];
-	[objectContext release];
+    [self setObjectId:nil];
+    [self setObjectContext:nil];
     [values release];
+    values = nil;
 	[super dealloc];
 }
 

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m Mon Sep  4 12:53:52
2006
@@ -21,6 +21,7 @@
 #import "CAYFault.h"
 #import "CAYRelationshipQuery.h"
 #import "CAYObjectContext.h"
+#import "CAYManagedArray.h"
 
 @implementation CAYToManyFault
 
@@ -33,18 +34,16 @@
     [q setRelationshipName:[self relationshipName]];
     
     CAYObjectContext *ctxt = [[self sourceObject] objectContext];
-    NSArray *rows = (NSArray *)[ctxt performQyery:q];
+    NSArray *rows = (NSArray *)[ctxt performQuery:q];
     [q release];
-    return rows;
+    //return rows;
     
     // TODO: create a collection that will autoadd new objects to the context? check with
Core Data
-    /*
     CAYManagedArray *managedRows = [[CAYManagedArray alloc] init];
     [managedRows setArray:rows];
     [managedRows setObjectContext:ctxt];
     
     return [managedRows autorelease];
-    */
 }
 
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m Mon Sep  4 12:53:52
2006
@@ -33,7 +33,7 @@
     [q setRelationshipName:[self relationshipName]];
     
     CAYObjectContext *ctxt = [[self sourceObject] objectContext];
-    NSArray *rows = (NSArray *)[ctxt performQyery:q];
+    NSArray *rows = (NSArray *)[ctxt performQuery:q];
     CAYPersistentObject *row = nil;
     if([rows count] == 1)
     {

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj?view=diff&rev=440161&r1=440160&r2=440161
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
(original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
Mon Sep  4 12:53:52 2006
@@ -63,6 +63,12 @@
 		4448AA440AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m in Sources */ = {isa = PBXBuildFile;
fileRef = 4448AA420AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m */; };
 		444DA8050AA61E54006E1768 /* CAYCocoaCayenne.h in Headers */ = {isa = PBXBuildFile; fileRef
= 444DA8030AA61E54006E1768 /* CAYCocoaCayenne.h */; settings = {ATTRIBUTES = (Public, ); };
};
 		444DA8060AA61E54006E1768 /* CAYCocoaCayenne.m in Sources */ = {isa = PBXBuildFile; fileRef
= 444DA8040AA61E54006E1768 /* CAYCocoaCayenne.m */; };
+		444DA9FD0AA640B8006E1768 /* CAYManagedArray.h in Headers */ = {isa = PBXBuildFile; fileRef
= 444DA9FB0AA640B8006E1768 /* CAYManagedArray.h */; settings = {ATTRIBUTES = (Public, ); };
};
+		444DA9FE0AA640B8006E1768 /* CAYManagedArray.m in Sources */ = {isa = PBXBuildFile; fileRef
= 444DA9FC0AA640B8006E1768 /* CAYManagedArray.m */; };
+		444DAB190AACB74C006E1768 /* CAYArcCreateOperation.h in Headers */ = {isa = PBXBuildFile;
fileRef = 444DAB170AACB74C006E1768 /* CAYArcCreateOperation.h */; };
+		444DAB1A0AACB74C006E1768 /* CAYArcCreateOperation.m in Sources */ = {isa = PBXBuildFile;
fileRef = 444DAB180AACB74C006E1768 /* CAYArcCreateOperation.m */; };
+		444DAB270AACB7B1006E1768 /* CAYArcDeleteOperation.h in Headers */ = {isa = PBXBuildFile;
fileRef = 444DAB250AACB7B1006E1768 /* CAYArcDeleteOperation.h */; };
+		444DAB280AACB7B1006E1768 /* CAYArcDeleteOperation.m in Sources */ = {isa = PBXBuildFile;
fileRef = 444DAB260AACB7B1006E1768 /* CAYArcDeleteOperation.m */; };
 		44FE798F0AA3790C0040BB78 /* HessianObjC.framework in Frameworks */ = {isa = PBXBuildFile;
fileRef = 44FE798E0AA3790C0040BB78 /* HessianObjC.framework */; };
 		8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef
= 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
 		8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef
= 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
@@ -130,6 +136,12 @@
 		4448AA420AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.objc; path = CAYNodeDeleteOperation.m; sourceTree =
"<group>"; };
 		444DA8030AA61E54006E1768 /* CAYCocoaCayenne.h */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.h; path = CAYCocoaCayenne.h; sourceTree = "<group>";
};
 		444DA8040AA61E54006E1768 /* CAYCocoaCayenne.m */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.objc; path = CAYCocoaCayenne.m; sourceTree = "<group>";
};
+		444DA9FB0AA640B8006E1768 /* CAYManagedArray.h */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.h; path = CAYManagedArray.h; sourceTree = "<group>";
};
+		444DA9FC0AA640B8006E1768 /* CAYManagedArray.m */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.objc; path = CAYManagedArray.m; sourceTree = "<group>";
};
+		444DAB170AACB74C006E1768 /* CAYArcCreateOperation.h */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.h; path = CAYArcCreateOperation.h; sourceTree = "<group>";
};
+		444DAB180AACB74C006E1768 /* CAYArcCreateOperation.m */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.objc; path = CAYArcCreateOperation.m; sourceTree = "<group>";
};
+		444DAB250AACB7B1006E1768 /* CAYArcDeleteOperation.h */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.h; path = CAYArcDeleteOperation.h; sourceTree = "<group>";
};
+		444DAB260AACB7B1006E1768 /* CAYArcDeleteOperation.m */ = {isa = PBXFileReference; fileEncoding
= 4; lastKnownFileType = sourcecode.c.objc; path = CAYArcDeleteOperation.m; sourceTree = "<group>";
};
 		44FE798E0AA3790C0040BB78 /* HessianObjC.framework */ = {isa = PBXFileReference; lastKnownFileType
= wrapper.framework; name = HessianObjC.framework; path = /Library/Frameworks/HessianObjC.framework;
sourceTree = "<absolute>"; };
 		8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4;
lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
 		8DC2EF5B0486A6940098B216 /* CocoaCayenne.framework */ = {isa = PBXFileReference; explicitFileType
= wrapper.framework; includeInIndex = 0; path = CocoaCayenne.framework; sourceTree = BUILT_PRODUCTS_DIR;
};
@@ -191,6 +203,7 @@
 		08FB77AEFE84172EC02AAC07 /* Classes */ = {
 			isa = PBXGroup;
 			children = (
+				444DA9FA0AA6409E006E1768 /* collection */,
 				444DA8AC0AA62727006E1768 /* connection */,
 				44463DCB0AA3757F006BAA58 /* fault */,
 				44463DCC0AA37586006BAA58 /* message */,
@@ -289,6 +302,10 @@
 				4448AA420AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m */,
 				4421E61C0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h */,
 				4421E61D0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m */,
+				444DAB170AACB74C006E1768 /* CAYArcCreateOperation.h */,
+				444DAB180AACB74C006E1768 /* CAYArcCreateOperation.m */,
+				444DAB250AACB7B1006E1768 /* CAYArcDeleteOperation.h */,
+				444DAB260AACB7B1006E1768 /* CAYArcDeleteOperation.m */,
 			);
 			name = graph;
 			sourceTree = "<group>";
@@ -317,6 +334,15 @@
 			name = connection;
 			sourceTree = "<group>";
 		};
+		444DA9FA0AA6409E006E1768 /* collection */ = {
+			isa = PBXGroup;
+			children = (
+				444DA9FB0AA640B8006E1768 /* CAYManagedArray.h */,
+				444DA9FC0AA640B8006E1768 /* CAYManagedArray.m */,
+			);
+			name = collection;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
@@ -352,6 +378,9 @@
 				4448AA430AA4C55F002C2FA7 /* CAYNodeDeleteOperation.h in Headers */,
 				4421E61E0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h in Headers */,
 				444DA8050AA61E54006E1768 /* CAYCocoaCayenne.h in Headers */,
+				444DA9FD0AA640B8006E1768 /* CAYManagedArray.h in Headers */,
+				444DAB190AACB74C006E1768 /* CAYArcCreateOperation.h in Headers */,
+				444DAB270AACB7B1006E1768 /* CAYArcDeleteOperation.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -437,6 +466,9 @@
 				4448AA440AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m in Sources */,
 				4421E61F0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m in Sources */,
 				444DA8060AA61E54006E1768 /* CAYCocoaCayenne.m in Sources */,
+				444DA9FE0AA640B8006E1768 /* CAYManagedArray.m in Sources */,
+				444DAB1A0AACB74C006E1768 /* CAYArcCreateOperation.m in Sources */,
+				444DAB280AACB7B1006E1768 /* CAYArcDeleteOperation.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};



Mime
View raw message