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/08/28 21:30:15 UTC
svn commit: r437793 [1/2] - in
/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne: ./
CocoaCayenne.xcodeproj/ English.lproj/
Author: torehalset
Date: Mon Aug 28 12:30:13 2006
New Revision: 437793
URL: http://svn.apache.org/viewvc?rev=437793&view=rev
Log:
import framework project
Added:
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.h
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne_Prefix.pch
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/English.lproj/
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/English.lproj/InfoPlist.strings (with props)
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/Info.plist
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,16 @@
+//
+// BootstrapMessage.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYClientMessage.h"
+
+@interface CAYBootstrapMessage : CAYClientMessage <NSCoding> {
+
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYBootstrapMessage.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,25 @@
+//
+// BootstrapMessage.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYBootstrapMessage.h"
+
+
+@implementation CAYBootstrapMessage
+
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,18 @@
+//
+// CAYClientConnection.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYClientMessage.h"
+
+@interface CAYClientConnection : NSObject {
+
+}
+
+- (id) sendMessage:(CAYClientMessage *)message;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,20 @@
+//
+// CAYClientConnection.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYClientConnection.h"
+
+
+@implementation CAYClientConnection
+
+- (id) sendMessage:(CAYClientMessage *)message
+{
+ NSLog(@"CAYClientConnection does not implement sendMessage");
+ return nil;
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,16 @@
+//
+// CAYClientMessage.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYClientMessage : NSObject {
+
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientMessage.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,14 @@
+//
+// CAYClientMessage.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYClientMessage.h"
+
+
+@implementation CAYClientMessage
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,27 @@
+//
+// CAYClientObjRelationship.h
+// CAYClient
+//
+// Created by Tore Halset on 8/20/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYClientObjRelationship : NSObject <NSCoding> {
+
+ BOOL toMany;
+ NSString *name;
+ NSString *targetEntityName;
+
+}
+
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+-(void)setTargetEntityName:(NSString *)n;
+-(NSString *)targetEntityName;
+-(BOOL)isToMany;
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientObjRelationship.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,69 @@
+//
+// CAYClientObjRelationship.m
+// CAYClient
+//
+// Created by Tore Halset on 8/20/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYClientObjRelationship.h"
+
+
+@implementation CAYClientObjRelationship
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ // TODO: correct with clientToMany instead of toMany?
+ toMany = [coder decodeBoolForKey:@"clientToMany"];
+ [self setName:[coder decodeObjectForKey:@"name"]];
+ [self setTargetEntityName:[coder decodeObjectForKey:@"targetEntityName"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ // TODO: correct with clientToMany
+ [coder encodeBool:toMany forKey:@"clientToMany"];
+ [coder encodeObject:name forKey:@"name"];
+ [coder encodeObject:targetEntityName forKey:@"targetEntityName"];
+}
+
+-(void)setName:(NSString *)n
+{
+ [n retain];
+ [name release];
+ name = n;
+}
+
+-(NSString *)name
+{
+ return name;
+}
+
+-(void)setTargetEntityName:(NSString *)n
+{
+ [n retain];
+ [targetEntityName release];
+ targetEntityName = n;
+}
+
+-(NSString *)targetEntityName
+{
+ return targetEntityName;
+}
+
+-(BOOL)isToMany
+{
+ return toMany;
+}
+
+-(void)dealloc
+{
+ [name release];
+ [targetEntityName release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,21 @@
+//
+// CAYCompoundDiff.h
+// CAYClient
+//
+// Created by Tore Halset on 8/24/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYCompoundDiff : NSObject <NSCoding> {
+ NSMutableArray *diffs;
+}
+
+-(id)initWithDiffs:(NSMutableArray *)ds;
+
+-(void)setDiffs:(NSMutableArray *)ds;
+-(NSMutableArray *)diffs;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCompoundDiff.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,51 @@
+//
+// CAYCompoundDiff.m
+// CAYClient
+//
+// Created by Tore Halset on 8/24/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYCompoundDiff.h"
+
+
+@implementation CAYCompoundDiff
+
+-(id)initWithDiffs:(NSMutableArray *)ds
+{
+ [super init];
+ [self setDiffs:ds];
+ return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setDiffs:[coder decodeObjectForKey:@"diffs"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:diffs forKey:@"diffs"];
+}
+
+-(void)setDiffs:(NSMutableArray *)ds
+{
+ [ds retain];
+ [diffs release];
+ diffs = ds;
+}
+
+-(NSMutableArray *)diffs
+{
+ return diffs;
+}
+
+-(void)dealloc
+{
+ [diffs release];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,24 @@
+//
+// CAYDataMap.h
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYDataMap : NSObject <NSCoding> {
+
+ NSString *name;
+ NSMutableDictionary *objEntityMap;
+
+}
+
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+-(void)setObjEntityMap:(NSMutableDictionary *)oem;
+-(NSMutableDictionary *)objEntityMap;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,64 @@
+//
+// CAYDataMap.m
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYDataMap.h"
+
+
+@implementation CAYDataMap
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setName:[coder decodeObjectForKey:@"name"]];
+ [self setObjEntityMap:[coder decodeObjectForKey:@"objEntityMap"]];
+
+ // remove extra entry created by hessian framework
+ // TODO: fix in framework?
+ [[self objEntityMap] removeObjectForKey:@"hessianClassName"];
+
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:name forKey:@"name"];
+ [coder encodeObject:objEntityMap forKey:@"objEntityMap"];
+}
+
+-(void)setName:(NSString *)n
+{
+ [n retain];
+ [name release];
+ name = n;
+}
+
+-(NSString *)name
+{
+ return name;
+}
+
+-(void)setObjEntityMap:(NSMutableDictionary *)oem
+{
+ [oem retain];
+ [objEntityMap release];
+ objEntityMap = oem;
+}
+
+-(NSMutableDictionary *)objEntityMap
+{
+ return objEntityMap;
+}
+
+-(void)dealloc
+{
+ [self setName:nil];
+ [self setObjEntityMap:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,25 @@
+//
+// CAYEntityResolver.h
+// CAYClient
+//
+// Created by Tore Halset on 8/14/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYObjEntity.h"
+
+@interface CAYEntityResolver : NSObject {
+ NSArray *maps;
+ NSMutableDictionary *classMapping;
+}
+
+-(void)setMaps:(NSArray *)m;
+-(NSArray *)maps;
+-(void)setClassMapping:(NSMutableDictionary *)cm;
+-(NSMutableDictionary *)classMapping;
+
+-(void)updateClassMapping;
+-(CAYObjEntity *)objEntityForClass:(Class)cl;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,111 @@
+//
+// CAYEntityResolver.m
+// CAYClient
+//
+// Created by Tore Halset on 8/14/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYEntityResolver.h"
+#import "CAYDataMap.h"
+#import "CAYObjEntity.h"
+
+@implementation CAYEntityResolver
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setMaps:[coder decodeObjectForKey:@"maps"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:maps forKey:@"maps"];
+}
+
+-(void)setMaps:(NSArray *)m
+{
+ [m retain];
+ [maps release];
+ maps = m;
+}
+
+-(NSArray *)maps
+{
+ return maps;
+}
+
+-(void)setClassMapping:(NSMutableDictionary *)cm
+{
+ [cm retain];
+ [classMapping release];
+ classMapping = cm;
+}
+
+-(NSMutableDictionary *)classMapping
+{
+ return classMapping;
+}
+
+-(void)updateClassMapping
+{
+ NSMutableDictionary *cm = [NSMutableDictionary dictionary];
+
+ // TODO: handle more than one map?
+ CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
+ //NSLog(@"datamap.name: %@", [dataMap valueForKey:@"name"]);
+ NSMutableDictionary *objEntityMap = [dataMap objEntityMap];
+
+ NSEnumerator *enumerator = [objEntityMap keyEnumerator];
+ NSString *entityName;
+ while(entityName = [enumerator nextObject])
+ {
+ CAYObjEntity *entity = [objEntityMap objectForKey:entityName];
+
+ Class cl = NSClassFromString([entity name]);
+ if(cl)
+ {
+ NSLog(@"mapping client %@ to server %@", [entity name], [entity serverClassName]);
+ [cm setObject:[entity name] forKey:[entity serverClassName]];
+ }
+ else
+ {
+ NSLog(@"Could not find cocoa class %@ for server class $@", [entity name], [entity serverClassName]);
+ }
+ }
+
+ [self setClassMapping:cm];
+}
+
+-(CAYObjEntity *)objEntityForClass:(Class)cl
+{
+ // TODO: handle more than one map?
+ CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
+ //NSLog(@"datamap.name: %@", [dataMap valueForKey:@"name"]);
+ NSMutableDictionary *objEntityMap = [dataMap objEntityMap];
+
+ // TODO: cache the lookup using a NSDictionary!
+ NSEnumerator *enumerator = [objEntityMap keyEnumerator];
+ NSString *entityName;
+ while(entityName = [enumerator nextObject])
+ {
+ CAYObjEntity *entity = [objEntityMap objectForKey:entityName];
+ Class tc = NSClassFromString([entity name]);
+ if([cl isEqualTo:tc])
+ {
+ return entity;
+ }
+ }
+
+ return nil;
+}
+
+-(void)dealloc
+{
+ [self setMaps:nil];
+ [self setClassMapping:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,28 @@
+//
+// CAYFault.h
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYPersistentObject.h"
+
+@interface CAYFault : NSObject {
+
+ CAYPersistentObject *sourceObject;
+ NSString *relationshipName;
+
+}
+
+-(id)initWithSourceObject:(CAYPersistentObject *)so relationshipName:(NSString *)rn;
+
+-(void)setSourceObject:(CAYPersistentObject *)so;
+-(CAYPersistentObject *)sourceObject;
+-(void)setRelationshipName:(NSString *)rn;
+-(NSString *)relationshipName;
+
+-(id)resolveFault;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYFault.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,62 @@
+//
+// CAYFault.m
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYFault.h"
+#import "CAYObjectContext.h"
+
+@implementation CAYFault
+
+-(id)initWithSourceObject:(CAYPersistentObject *)so relationshipName:(NSString *)rn
+{
+ [super init];
+ if(self)
+ {
+ [self setSourceObject:so];
+ [self setRelationshipName:rn];
+ }
+ return self;
+}
+
+-(void)setSourceObject:(CAYPersistentObject *)so
+{
+ [so retain];
+ [sourceObject release];
+ sourceObject = so;
+}
+
+-(CAYPersistentObject *)sourceObject
+{
+ return sourceObject;
+}
+
+-(void)setRelationshipName:(NSString *)rn
+{
+ [rn retain];
+ [relationshipName release];
+ relationshipName = rn;
+}
+
+-(NSString *)relationshipName
+{
+ return relationshipName;
+}
+
+-(id)resolveFault
+{
+ NSLog(@"ERROR. CayFault is abstract. use a subclass");
+ return nil;
+}
+
+-(void)dealloc
+{
+ [self setSourceObject:nil];
+ [self setRelationshipName:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,19 @@
+//
+// GenericResponse.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYGenericResponse : NSObject <NSCoding> {
+ NSArray *results;
+}
+
+-(void)setResults:(NSArray *)r;
+-(NSArray *)results;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYGenericResponse.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,44 @@
+//
+// GenericResponse.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYGenericResponse.h"
+
+
+@implementation CAYGenericResponse
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setResults:[coder decodeObjectForKey:@"results"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:results forKey:@"results"];
+}
+
+-(void)setResults:(NSArray *)r
+{
+ [r retain];
+ [results release];
+ results = r;
+}
+
+-(NSArray *)results
+{
+ return results;
+}
+
+-(void)dealloc
+{
+ [results release];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,20 @@
+//
+// CAYHessianConnection.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYClientConnection.h"
+#import <HessianObjC/BBSHessianObjC.h>
+
+@interface CAYHessianConnection : CAYClientConnection {
+ BBSHessianProxy *proxy;
+}
+
+-(void) setProxy:(BBSHessianProxy *)p;
+-(BBSHessianProxy *) proxy;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,39 @@
+//
+// CAYHessianConnection.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYHessianConnection.h"
+#import "CAYClientMessage.h"
+
+@implementation CAYHessianConnection
+
+- (id) sendMessage:(CAYClientMessage *)message
+{
+ NSArray *parameters = [NSArray arrayWithObject:message];
+ id result = [proxy callSynchronous:@"processMessage" withParameters:parameters];
+ return result;
+}
+
+-(void) setProxy:(BBSHessianProxy *)p
+{
+ [p retain];
+ [proxy release];
+ proxy = p;
+}
+
+-(BBSHessianProxy *) proxy
+{
+ return proxy;
+}
+
+-(void)dealloc
+{
+ [proxy release];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,23 @@
+//
+// NamedQuery.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYQuery.h"
+
+@interface CAYNamedQuery : CAYQuery <NSCoding> {
+ BOOL forceNoCache;
+ NSString *name;
+ NSDictionary *parameters;
+}
+
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+-(void)setParameters:(NSDictionary *)p;
+-(NSDictionary *)parameters;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNamedQuery.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,61 @@
+//
+// NamedQuery.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYNamedQuery.h"
+
+
+@implementation CAYNamedQuery
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ forceNoCache = [coder decodeBoolForKey:@"forceNoCache"];
+ [self setName:[coder decodeObjectForKey:@"name"]];
+ [self setParameters:[coder decodeObjectForKey:@"parameters"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeBool:forceNoCache forKey:@"forceNoCache"];
+ [coder encodeObject:name forKey:@"name"];
+ [coder encodeObject:parameters forKey:@"parameters"];
+}
+
+-(void)setName:(NSString *)n
+{
+ [n retain];
+ [name release];
+ name = n;
+}
+
+-(NSString *)name
+{
+ return name;
+}
+
+-(void)setParameters:(NSDictionary *)p
+{
+ [p retain];
+ [parameters release];
+ parameters = p;
+}
+
+-(NSDictionary *)parameters
+{
+ return parameters;
+}
+
+-(void)dealloc
+{
+ [self setName:nil];
+ [self setParameters:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,23 @@
+//
+// CAYNodeDiff.h
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYNodeDiff : NSObject <NSCoding> {
+ int diffId;
+ NSObject *nodeId;
+}
+
+-(id)initWithNodeId:(id)nid;
+-(id)initWithNodeId:(id)nid diffId:(int)did;
+
+-(void)setNodeId:(NSObject *)nid;
+-(NSObject *)nodeId;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodeDiff.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,61 @@
+//
+// CAYNodeDiff.m
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYNodeDiff.h"
+
+
+@implementation CAYNodeDiff
+
+-(id)initWithNodeId:(id)nid
+{
+ [super init];
+ [self setNodeId:nid];
+ return self;
+}
+
+-(id)initWithNodeId:(id)nid diffId:(int)did
+{
+ [self initWithNodeId:nid];
+ diffId = did;
+ return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ diffId = [coder decodeIntForKey:@"diffId"];
+ [self setNodeId:[coder decodeObjectForKey:@"nodeId"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeInt:diffId forKey:@"diffId"];
+ [coder encodeObject:nodeId forKey:@"nodeId"];
+}
+
+-(void)setNodeId:(NSObject *)nid
+{
+ [nid retain];
+ [nodeId release];
+ nodeId = nid;
+}
+
+-(NSObject *)nodeId
+{
+ return nodeId;
+}
+
+-(void)dealloc
+{
+ [nodeId release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,28 @@
+//
+// CAYNodePropertyChangeOperation.h
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYNodeDiff.h"
+
+@interface CAYNodePropertyChangeOperation : CAYNodeDiff <NSCoding> {
+ NSString *property;
+ NSObject *oldValue;
+ NSObject *newValue;
+}
+
+-(id)initWithNodeId:(NSObject *)nid property:(NSString *)prop oldValue:(NSObject *)oldVal newValue:(NSObject *)newVal;
+-(id)initWithNodeId:(NSObject *)nid property:(NSString *)prop oldValue:(NSObject *)oldVal newValue:(NSObject *)newVal diffId:(int)did;
+
+-(void)setProperty:(NSString *)p;
+-(NSString *)property;
+-(void)setOldValue:(NSObject *)o;
+-(NSObject *)oldValue;
+-(void)setNewValue:(NSObject *)o;
+-(NSObject *)newValue;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYNodePropertyChangeOperation.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,92 @@
+//
+// CAYNodePropertyChangeOperation.m
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYNodePropertyChangeOperation.h"
+#import "CAYNodeDiff.h"
+
+@implementation CAYNodePropertyChangeOperation
+
+-(id)initWithNodeId:(NSObject *)nid property:(NSString *)prop oldValue:(NSObject *)oldVal newValue:(NSObject *)newVal
+{
+ [super initWithNodeId:nid];
+ [self setProperty:prop];
+ [self setOldValue:oldVal];
+ [self setNewValue:newVal];
+ return self;
+}
+
+-(id)initWithNodeId:(NSObject *)nid property:(NSString *)prop oldValue:(NSObject *)oldVal newValue:(NSObject *)newVal diffId:(int)did
+{
+ [self initWithNodeId:nid property:prop oldValue:oldVal newValue:newVal];
+ diffId = did;
+ return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super initWithCoder:coder];
+ [self setProperty:[coder decodeObjectForKey:@"property"]];
+ [self setOldValue:[coder decodeObjectForKey:@"oldValue"]];
+ [self setNewValue:[coder decodeObjectForKey:@"newValue"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [super encodeWithCoder:coder];
+ [coder encodeObject:property forKey:@"property"];
+ [coder encodeObject:oldValue forKey:@"oldValue"];
+ [coder encodeObject:newValue forKey:@"newValue"];
+}
+
+-(void)setProperty:(NSString *)p
+{
+ [p retain];
+ [property release];
+ property = p;
+}
+
+-(NSString *)property
+{
+ return property;
+}
+
+-(void)setOldValue:(NSObject *)o
+{
+ [o retain];
+ [oldValue release];
+ oldValue = o;
+}
+
+-(NSObject *)oldValue
+{
+ return oldValue;
+}
+
+-(void)setNewValue:(NSObject *)o
+{
+ [o retain];
+ [newValue release];
+ newValue = o;
+}
+
+-(NSObject *)newValue
+{
+ return newValue;
+}
+
+-(void)dealloc
+{
+ [property release];
+ [oldValue release];
+ [newValue release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,30 @@
+//
+// CAYObjEntity.h
+// CAYClient
+//
+// Created by Tore Halset on 8/18/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYObjEntity : NSObject <NSCoding> {
+
+ NSArray *attributes;
+ NSString *name;
+ NSString *serverClassName;
+ NSMutableDictionary *relationships;
+
+}
+
+-(void)setAttributes:(NSArray *)a;
+-(NSArray *)attributes;
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+-(void)setServerClassName:(NSString *)n;
+-(NSString *)serverClassName;
+-(void)setRelationships:(NSMutableDictionary *)r;
+-(NSMutableDictionary *)relationships;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjEntity.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,96 @@
+//
+// CAYObjEntity.m
+// CAYClient
+//
+// Created by Tore Halset on 8/18/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYObjEntity.h"
+
+
+@implementation CAYObjEntity
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setAttributes:[coder decodeObjectForKey:@"attributes"]];
+ [self setName:[coder decodeObjectForKey:@"name"]];
+ [self setServerClassName:[coder decodeObjectForKey:@"className"]];
+ [self setRelationships:[coder decodeObjectForKey:@"relationships"]];
+
+ // remove extra entry created by hessian framework
+ // TODO: fix in framework?
+ [[self relationships] removeObjectForKey:@"hessianClassName"];
+
+
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:attributes forKey:@"attributes"];
+ [coder encodeObject:name forKey:@"name"];
+ [coder encodeObject:serverClassName forKey:@"className"];
+ [coder encodeObject:relationships forKey:@"relationships"];
+}
+
+-(void)setAttributes:(NSArray *)a
+{
+ [a retain];
+ [attributes release];
+ attributes = a;
+}
+
+-(NSArray *)attributes
+{
+ return attributes;
+}
+
+-(void)setName:(NSString *)n
+{
+ [n retain];
+ [name release];
+ name = n;
+}
+
+-(NSString *)name
+{
+ return name;
+}
+
+-(void)setServerClassName:(NSString *)n
+{
+ [n retain];
+ [serverClassName release];
+ serverClassName = n;
+}
+
+-(NSString *)serverClassName
+{
+ return serverClassName;
+}
+
+-(void)setRelationships:(NSMutableDictionary *)r
+{
+ [r retain];
+ [relationships release];
+ relationships = r;
+}
+
+-(NSMutableDictionary *)relationships
+{
+ return relationships;
+}
+
+-(void)dealloc
+{
+ [attributes release];
+ [name release];
+ [relationships release];
+ [serverClassName release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,33 @@
+//
+// CAYObjectContext.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYQuery.h"
+#import "CAYEntityResolver.h"
+
+@class CAYPersistentObject, CAYClientConnection;
+
+@interface CAYObjectContext : NSObject {
+ CAYClientConnection *connection;
+ NSMutableArray *diffs;
+ CAYEntityResolver *entityResolver;
+}
+
+-(NSArray *)performQyery:(CAYQuery *)q;
+
+-(void)setConnection:(CAYClientConnection *)c;
+-(CAYClientConnection *)connection;
+
+-(void) propertyChanged:(CAYPersistentObject *)object forProperty:(NSString *)property fromOld:(NSObject *)oldValue toNew:(NSObject *)newValue;
+
+-(void)commitChanges;
+
+-(void)setEntityResolver:(CAYEntityResolver *)er;
+-(CAYEntityResolver *)entityResolver;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,151 @@
+//
+// CAYObjectContext.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYObjectContext.h"
+#import "CAYQueryMessage.h"
+#import "CAYQuery.h"
+#import "CAYPersistentObject.h"
+#import "CAYClientConnection.h"
+#import "CAYNodeDiff.h"
+#import "CAYNodePropertyChangeOperation.h"
+#import "CAYCompoundDiff.h"
+#import "CAYSyncMessage.h"
+#import "CAYObjEntity.h"
+#import "CAYClientObjRelationship.h"
+#import "CAYFault.h"
+#import "CAYToManyFault.h"
+#import "CAYToOneFault.h"
+
+@implementation CAYObjectContext
+
+-(id)init
+{
+ self = [super init];
+ if(self != nil)
+ {
+ diffs = [[NSMutableArray array] retain];
+ }
+ return self;
+}
+
+-(NSArray *)performQyery:(CAYQuery *)query
+{
+ CAYQueryMessage *queryMessage = [[CAYQueryMessage alloc] init];
+ [queryMessage setQuery:query];
+ id result = [[self connection] sendMessage:queryMessage];
+ [queryMessage release];
+
+ NSArray *results = [result results];
+ NSArray *rows = [results objectAtIndex:0];
+
+ // connect objects to the context
+ int n = [rows count];
+ int i;
+ for(i = 0; i < n; i++)
+ {
+ id row = [rows objectAtIndex:i];
+ if([row isKindOfClass:[CAYPersistentObject class]])
+ {
+ [row setObjectContext:self];
+ // TODO: set initial persistant state
+ // TODO: check for existing objects in context with same ObjectId
+
+ CAYObjEntity *objEntity = [[self entityResolver] objEntityForClass:[row class]];
+ if(objEntity)
+ {
+ NSDictionary *relations = [objEntity relationships];
+ NSEnumerator *enumerator = [relations keyEnumerator];
+ NSString *relname;
+ while(relname = [enumerator nextObject])
+ {
+ CAYClientObjRelationship *rel = (CAYClientObjRelationship *)[relations objectForKey:relname];
+ NSLog(@"create fault for relation named %@: %@", relname, rel);
+ CAYFault *fault = nil;
+ if([rel isToMany])
+ {
+ fault = [[CAYToManyFault alloc] initWithSourceObject:row relationshipName:relname];
+ }
+ else
+ {
+ fault = [[CAYToOneFault alloc] initWithSourceObject:row relationshipName:relname];
+ }
+ [[row valuesRaw] setValue:fault forKey:relname];
+ [fault release];
+ }
+ }
+ else
+ {
+ NSLog(@"ERROR: Could not find ObjEntity for class %@", [row class]);
+ }
+ }
+ }
+
+ NSLog(@"query rows: %@", rows);
+ return rows;
+}
+
+-(void) propertyChanged:(CAYPersistentObject *)object forProperty:(NSString *)property fromOld:(NSObject *)oldValue toNew:(NSObject *)newValue
+{
+ NSLog(@"prop %@ changed from %@ to %@", property, oldValue, newValue);
+
+ CAYNodeDiff *diff = [[CAYNodePropertyChangeOperation alloc] initWithNodeId:[object objectId] property:property oldValue:oldValue newValue:newValue];
+ [diffs addObject:diff];
+ [diff release];
+ NSLog(@"%i unsaved changes", [diffs count]);
+}
+
+-(void)setConnection:(CAYClientConnection *)c
+{
+ [c retain];
+ [connection release];
+ connection = c;
+}
+
+-(CAYClientConnection *)connection
+{
+ return connection;
+}
+
+-(void)commitChanges
+{
+ NSLog(@"%i unsaved changes before commit", [diffs count]);
+ CAYCompoundDiff *diffWithDiffs = [[CAYCompoundDiff alloc] initWithDiffs:diffs];
+ // TODO: handle different types?
+ CAYSyncMessage *msg = [[CAYSyncMessage alloc] initWithObjectSource:nil type:2 senderChanges:diffWithDiffs];
+
+ // TODO: handle result?
+ id result = [[self connection] sendMessage:msg];
+ NSLog(@"commit result: %@", result);
+ [diffs removeAllObjects];
+
+ [msg release];
+ [diffWithDiffs release];
+ NSLog(@"%i unsaved changes after commit", [diffs count]);
+}
+
+-(void)setEntityResolver:(CAYEntityResolver *)er
+{
+ [er retain];
+ [entityResolver release];
+ entityResolver = er;
+}
+
+-(CAYEntityResolver *)entityResolver
+{
+ return entityResolver;
+}
+
+-(void)dealloc
+{
+ [self setConnection:nil];
+ [diffs release];
+ [self setEntityResolver:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,35 @@
+//
+// ObjectId.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYObjectId : NSObject <NSCoding, NSCopying> {
+
+ NSString *entityName;
+ NSDictionary *objectIdKeys;
+ NSString *singleKey;
+ NSObject *singleValue;
+ NSData *tempKey;
+ NSDictionary *replacementIdMap;
+}
+
+-(void)setEntityName:(NSString *)en;
+-(NSString *)entityName;
+-(void)setObjectIdKeys:(NSDictionary *)oidks;
+-(NSDictionary *)objectIdKeys;
+-(void)setSingleKey:(NSString *)sk;
+-(NSString *)singleKey;
+-(void)setSingleValue:(NSObject *)sv;
+-(NSObject *)singleValue;
+-(void)setTempKey:(NSData *)k;
+-(NSData *)tempKey;
+-(void)setReplacementIdMap:(NSDictionary *)rm;
+-(NSDictionary *)replacementIdMap;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectId.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,172 @@
+//
+// ObjectId.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYObjectId.h"
+
+
+@implementation CAYObjectId
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setEntityName:[coder decodeObjectForKey:@"entityName"]];
+ [self setObjectIdKeys:[coder decodeObjectForKey:@"objectIdKeys"]];
+ [self setSingleKey:[coder decodeObjectForKey:@"singleKey"]];
+ [self setSingleValue:[coder decodeObjectForKey:@"singleValue"]];
+ [self setTempKey:[coder decodeObjectForKey:@"key"]];
+ [self setReplacementIdMap:[coder decodeObjectForKey:@"replacementIdMap"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:entityName forKey:@"entityName"];
+ [coder encodeObject:singleKey forKey:@"singleKey"];
+ [coder encodeObject:singleValue forKey:@"singleValue"];
+ [coder encodeObject:objectIdKeys forKey:@"objectIdKeys"];
+ // TODO: fix problem: the key "key" result in a ugly unserialize exception at the server side.
+ //[coder encodeObject:tempKey forKey:@"key"];
+ [coder encodeObject:replacementIdMap forKey:@"replacementIdMap"];
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+ id copy = [[[self class] allocWithZone:zone] init];
+ [copy setEntityName:[self entityName]];
+ [copy setObjectIdKeys:[self objectIdKeys]];
+ [copy setSingleKey:[self singleKey]];
+ [copy setSingleValue:[self singleValue]];
+ [copy setTempKey:[self tempKey]];
+
+ return copy;
+}
+
+-(void)setEntityName:(NSString *)en
+{
+ [en retain];
+ [entityName release];
+ entityName = en;
+}
+
+-(NSString *)entityName
+{
+ return entityName;
+}
+
+-(void)setObjectIdKeys:(NSDictionary *)oidks
+{
+ [oidks retain];
+ [objectIdKeys release];
+ objectIdKeys = oidks;
+}
+
+-(NSDictionary *)objectIdKeys
+{
+ return objectIdKeys;
+}
+
+-(void)setSingleKey:(NSString *)sk
+{
+ [sk retain];
+ [singleKey release];
+ singleKey = sk;
+}
+
+-(NSString *)singleKey
+{
+ return singleKey;
+}
+
+-(void)setSingleValue:(NSObject *)sv
+{
+ [sv retain];
+ [singleValue release];
+ singleValue = sv;
+}
+
+-(NSObject *)singleValue
+{
+ return singleValue;
+}
+
+-(void)setTempKey:(NSData *)k
+{
+ [k retain];
+ [tempKey release];
+ tempKey = k;
+}
+
+-(NSData *)tempKey
+{
+ return tempKey;
+}
+
+ -(void)setReplacementIdMap:(NSDictionary *)rm
+ {
+ [rm retain];
+ [replacementIdMap release];
+ replacementIdMap = rm;
+ }
+
+ -(NSDictionary *)replacementIdMap
+ {
+ return replacementIdMap;
+ }
+
+- (unsigned)hash
+{
+ /*
+ file:///Developer/ADC%20Reference%20Library/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/NSObject/hash
+
+ http://www.mulle-kybernetik.com/artikel/Optimization/opti-7.html
+ */
+ // TODO: implement!
+ // TODO: be smart about how to build hash value
+ unsigned hash = 17;
+ hash = hash + [entityName hash];
+ if([self singleKey] != nil)
+ {
+ hash = hash + [singleKey hash];
+ hash = hash + [singleValue hash];
+ }
+ else if ([self objectIdKeys] != nil)
+ {
+ // TODO: remember that values can come in random order
+ }
+ return hash;
+}
+
+- (BOOL)isEqual:(id)anObject
+{
+ // TODO: implement
+ if(![[self entityName] isEqualToString:[anObject entityName]])
+ {
+ return NO;
+ }
+ if(([self singleKey] != nil)&&(![[self singleKey] isEqualToString:[anObject singleKey]])&&(![[self singleValue] isEqual:[anObject singleValue]]))
+ {
+ return NO;
+ }
+ if(([self tempKey] != nil)&&(![[self tempKey] isEqualToData:[anObject tempKey]]))
+ {
+ return NO;
+ }
+ // TODO: check all values
+ return YES;
+}
+
+-(NSString *)description
+{
+ NSString *result;
+ result = [[NSString alloc] initWithFormat:@"{entityName = %@; objectIdKeys = %@; singleKey = %@; singleValue = %@}", [self entityName], [self objectIdKeys], [self singleKey], [self singleValue]];
+ [result autorelease];
+ return result;
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,30 @@
+//
+// CAYPersistentObject.h
+// CAYClient
+//
+// Created by Tore Halset on 8/14/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYObjectId.h"
+#import "CAYObjectContext.h"
+
+@interface CAYPersistentObject : NSObject <NSCoding> {
+ CAYObjectId *objectId;
+ unsigned int persistenceState;
+ id objectContext;
+ NSMutableDictionary *values;
+}
+
+-(void)setObjectId:(CAYObjectId *)oid;
+-(CAYObjectId *)objectId;
+-(void)setPersistenceState:(unsigned int)state;
+-(unsigned int)persistenceState;
+-(void)setObjectContext:(CAYObjectContext *)ctxt;
+-(CAYObjectContext *)objectContext;
+
+// used for raw access to the value dictionary. use with care!
+-(NSMutableDictionary *)valuesRaw;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYPersistentObject.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,85 @@
+//
+// CAYPersistentObject.m
+// CAYClient
+//
+// Created by Tore Halset on 8/14/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYPersistentObject.h"
+#import "CAYObjectId.h"
+#import "CAYObjectContext.h"
+
+
+@implementation CAYPersistentObject
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ values = [[NSMutableDictionary dictionary] retain];
+ [self setObjectId:[coder decodeObjectForKey:@"objectId"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:objectId forKey:@"objectId"];
+}
+
+-(void)setObjectId:(CAYObjectId *)oid
+{
+ [oid retain];
+ [objectId release];
+ objectId = oid;
+}
+
+-(CAYObjectId *)objectId
+{
+ return objectId;
+}
+
+-(void)setPersistenceState:(unsigned int)state
+{
+ persistenceState = state;
+}
+
+-(unsigned int)persistenceState
+{
+ return persistenceState;
+}
+
+-(void)setObjectContext:(CAYObjectContext *)ctxt
+{
+ [ctxt retain];
+ [objectContext release];
+ objectContext = ctxt;
+}
+
+-(CAYObjectContext *)objectContext
+{
+ return objectContext;
+}
+
+-(NSString *)description
+{
+ NSString *result;
+ result = [[NSString alloc] initWithFormat:@"{objectId = %@; values = %@}", [self objectId], values];
+ [result autorelease];
+ return result;
+}
+
+-(NSMutableDictionary *)valuesRaw
+{
+ return values;
+}
+
+-(void)dealloc
+{
+ [objectId release];
+ [objectContext release];
+ [values release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,16 @@
+//
+// CAYQuery.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYQuery : NSObject {
+
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQuery.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,14 @@
+//
+// CAYQuery.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYQuery.h"
+
+
+@implementation CAYQuery
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,20 @@
+//
+// QueryMessage.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYQuery.h"
+#import "CAYClientMessage.h"
+
+@interface CAYQueryMessage : CAYClientMessage <NSCoding> {
+ CAYQuery *query;
+}
+
+-(void)setQuery:(CAYQuery *)q;
+-(CAYQuery *)query;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYQueryMessage.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,44 @@
+//
+// QueryMessage.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYQueryMessage.h"
+#import "CAYQuery.h"
+
+@implementation CAYQueryMessage
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setQuery:[coder decodeObjectForKey:@"query"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:query forKey:@"query"];
+}
+
+-(void)setQuery:(CAYQuery *)q
+{
+ [q retain];
+ [query release];
+ query = q;
+}
+
+-(CAYQuery *)query
+{
+ return query;
+}
+
+-(void)dealloc
+{
+ [self setQuery:nil];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,24 @@
+//
+// CAYRelationshipQuery.h
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYQuery.h"
+#import "CAYObjectId.h"
+
+@interface CAYRelationshipQuery : CAYQuery <NSCoding> {
+ CAYObjectId *objectId;
+ NSString *relationshipName;
+ BOOL refreshing;
+}
+
+-(void)setObjectId:(CAYObjectId *)oid;
+-(CAYObjectId *)objectId;
+-(void)setRelationshipName:(NSString *)reln;
+-(NSString *)relationshipName;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRelationshipQuery.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,61 @@
+//
+// CAYRelationshipQuery.m
+// CAYClient
+//
+// Created by Tore Halset on 8/13/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYRelationshipQuery.h"
+
+
+@implementation CAYRelationshipQuery
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ refreshing = [coder decodeBoolForKey:@"refreshing"];
+ [self setObjectId:[coder decodeObjectForKey:@"objectId"]];
+ [self setRelationshipName:[coder decodeObjectForKey:@"relationshipName"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeBool:refreshing forKey:@"refreshing"];
+ [coder encodeObject:objectId forKey:@"objectId"];
+ [coder encodeObject:relationshipName forKey:@"relationshipName"];
+}
+
+-(void)setObjectId:(CAYObjectId *)oid
+{
+ [oid retain];
+ [objectId release];
+ objectId = oid;
+}
+
+-(CAYObjectId *)objectId
+{
+ return objectId;
+}
+
+-(void)setRelationshipName:(NSString *)reln
+{
+ [reln retain];
+ [relationshipName release];
+ relationshipName = reln;
+}
+
+-(NSString *)relationshipName
+{
+ return relationshipName;
+}
+
+-(void)dealloc
+{
+ [relationshipName release];
+ [objectId release];
+ [super dealloc];
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,22 @@
+//
+// RemoteSession.h
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYRemoteSession : NSObject <NSCoding> {
+ NSString *name;
+ NSString *sessionId;
+}
+
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+-(void)setSessionId:(NSString *)s;
+-(NSString *)sessionId;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYRemoteSession.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,58 @@
+//
+// RemoteSession.m
+// CAYClient
+//
+// Created by Tore Halset on 8/12/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYRemoteSession.h"
+
+
+@implementation CAYRemoteSession
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ [self setName:[coder decodeObjectForKey:@"name"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:name forKey:@"name"];
+}
+
+-(void)setName:(NSString *)n
+{
+ [n retain];
+ [name release];
+ name = n;
+}
+
+-(NSString *)name
+{
+ return name;
+}
+
+-(void)setSessionId:(NSString *)s
+{
+ [s retain];
+ [sessionId release];
+ sessionId = s;
+}
+
+-(NSString *)sessionId
+{
+ return sessionId;
+}
+
+-(void)dealloc
+{
+ [name release];
+ [sessionId release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,29 @@
+//
+// CAYSyncMessage.h
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYClientMessage.h"
+#import "CAYObjectContext.h"
+
+@interface CAYSyncMessage : CAYClientMessage <NSCoding> {
+
+ CAYObjectContext *source;
+ int type;
+ // TODO: create CAYGraphDiff?
+ NSObject *senderChanges;
+
+}
+
+-(id)initWithObjectSource:(CAYObjectContext *)ctxt type:(int)t senderChanges:(NSObject *)changes;
+
+-(void)setSource:(CAYObjectContext *)s;
+-(CAYObjectContext *)source;
+-(void)setSenderChanges:(NSObject *)s;
+-(NSObject *)senderChanges;
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYSyncMessage.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,74 @@
+//
+// CAYSyncMessage.m
+// CAYClient
+//
+// Created by Tore Halset on 8/23/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYSyncMessage.h"
+#import "CAYClientMessage.h"
+#import "CAYObjectContext.h"
+
+@implementation CAYSyncMessage
+
+-(id)initWithObjectSource:(CAYObjectContext *)ctxt type:(int)t senderChanges:(NSObject *)changes
+{
+ [super init];
+ // source is transient
+ // [self setSource:ctxt];
+ type = t;
+ [self setSenderChanges:changes];
+ return self;
+}
+
+-(id)initWithCoder:(NSCoder*)coder
+{
+ [super init];
+ // source is transient
+ //[self setSource:[coder decodeObjectForKey:@"source"]];
+ type = [coder decodeIntForKey:@"type"];
+ [self setSenderChanges:[coder decodeObjectForKey:@"senderChanges"]];
+ return self;
+}
+
+-(void)encodeWithCoder:(NSCoder*)coder
+{
+ [coder encodeObject:source forKey:@"source"];
+ [coder encodeInt:type forKey:@"type"];
+ [coder encodeObject:senderChanges forKey:@"senderChanges"];
+}
+
+-(void)setSource:(CAYObjectContext *)s
+{
+ [s retain];
+ [source release];
+ source = s;
+}
+
+-(CAYObjectContext *)source
+{
+ return source;
+}
+
+-(void)setSenderChanges:(NSObject *)s
+{
+ [s retain];
+ [senderChanges release];
+ senderChanges = s;
+}
+
+-(NSObject *)senderChanges
+{
+ return senderChanges;
+}
+
+-(void)dealloc
+{
+ [source release];
+ [senderChanges release];
+ [super dealloc];
+}
+
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,16 @@
+//
+// CAYToManyFault.h
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYFault.h"
+
+@interface CAYToManyFault : CAYFault {
+
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToManyFault.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,33 @@
+//
+// CAYToManyFault.m
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYToManyFault.h"
+#import "CAYFault.h"
+#import "CAYRelationshipQuery.h"
+#import "CAYObjectContext.h"
+
+@implementation CAYToManyFault
+
+-(id)resolveFault
+{
+ NSLog(@"resolving toMany fault");
+
+ CAYRelationshipQuery *q = [[CAYRelationshipQuery alloc] init];
+ [q setObjectId:[[self sourceObject] objectId]];
+ [q setRelationshipName:[self relationshipName]];
+
+ CAYObjectContext *ctxt = [[self sourceObject] objectContext];
+ NSArray *rows = (NSArray *)[ctxt performQyery:q];
+
+ // TODO: create a collection that will autoadd new objects to the context? check with Core Data
+
+ [q release];
+ return rows;
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.h?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.h Mon Aug 28 12:30:13 2006
@@ -0,0 +1,16 @@
+//
+// CAYToOneFault.h
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CAYFault.h"
+
+@interface CAYToOneFault : CAYFault {
+
+}
+
+@end
Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m?rev=437793&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYToOneFault.m Mon Aug 28 12:30:13 2006
@@ -0,0 +1,40 @@
+//
+// CAYToOneFault.m
+// CAYClient
+//
+// Created by Tore Halset on 8/27/06.
+// Copyright 2006 __MyCompanyName__. All rights reserved.
+//
+
+#import "CAYToOneFault.h"
+#import "CAYFault.h"
+#import "CAYRelationshipQuery.h"
+#import "CAYObjectContext.h"
+
+@implementation CAYToOneFault
+
+-(id)resolveFault
+{
+ NSLog(@"resolving toOne fault");
+
+ CAYRelationshipQuery *q = [[CAYRelationshipQuery alloc] init];
+ [q setObjectId:[[self sourceObject] objectId]];
+ [q setRelationshipName:[self relationshipName]];
+
+ CAYObjectContext *ctxt = [[self sourceObject] objectContext];
+ NSArray *rows = (NSArray *)[ctxt performQyery:q];
+ CAYPersistentObject *row = nil;
+ if([rows count] == 1)
+ {
+ row = (CAYPersistentObject *)[rows objectAtIndex:0];
+ }
+ else
+ {
+ NSLog(@"ERROR: toOne fault resolve returned %i rows", [rows count]);
+ }
+
+ [q release];
+ return row;
+}
+
+@end