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/30 23:39:44 UTC
svn commit: r438649 -
/incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m
Author: torehalset
Date: Wed Aug 30 14:39:44 2006
New Revision: 438649
URL: http://svn.apache.org/viewvc?rev=438649&view=rev
Log:
moved class mapping++ from CAYClient to framework
Modified:
incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m
Modified: incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m?rev=438649&r1=438648&r2=438649&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CAYClient/AppController.m Wed Aug 30 14:39:44 2006
@@ -26,6 +26,8 @@
#import <CocoaCayenne/CAYHessianConnection.h>
#import <CocoaCayenne/CAYObjEntity.h>
#import <CocoaCayenne/CAYEntityResolver.h>
+#import <CocoaCayenne/CAYCocoaCayenne.h>
+#import <CocoaCayenne/CAYClientConnection.h>
@implementation AppController
@@ -42,74 +44,18 @@
if([self objectContext] == nil)
{
NSLog(@" *** initing cayenne client *** ");
- // map cayenne java class name to local class name
- NSMutableDictionary *classMapping = [[NSMutableDictionary dictionary] retain];
- //[classMapping setObject:@"CAYRemoteSession" forKey:@"org.objectstyle.cayenne.remote.RemoteSession"];
- [classMapping setObject:@"CAYNamedQuery" forKey:@"org.objectstyle.cayenne.query.NamedQuery"];
- [classMapping setObject:@"CAYRelationshipQuery" forKey:@"org.objectstyle.cayenne.query.RelationshipQuery"];
- [classMapping setObject:@"CAYGenericResponse" forKey:@"org.objectstyle.cayenne.util.GenericResponse"];
- [classMapping setObject:@"CAYObjectId" forKey:@"org.objectstyle.cayenne.ObjectId"];
- [classMapping setObject:@"CAYObjEntity" forKey:@"org.objectstyle.cayenne.map.ObjEntity"];
- [classMapping setObject:@"CAYClientObjRelationship" forKey:@"org.objectstyle.cayenne.map.ClientObjRelationship"];
- [classMapping setObject:@"CAYEntityResolver" forKey:@"org.objectstyle.cayenne.map.EntityResolver"];
- [classMapping setObject:@"CAYDataMap" forKey:@"org.objectstyle.cayenne.map.DataMap"];
- // message
- [classMapping setObject:@"CAYBootstrapMessage" forKey:@"org.objectstyle.cayenne.remote.BootstrapMessage"];
- [classMapping setObject:@"CAYQueryMessage" forKey:@"org.objectstyle.cayenne.remote.QueryMessage"];
- [classMapping setObject:@"CAYSyncMessage" forKey:@"org.objectstyle.cayenne.remote.SyncMessage"];
-
- // graph
- // abstract [classMapping setObject:@"CAYNodeDiff" forKey:@"org.objectstyle.cayenne.graph.NodeDiff"];
- [classMapping setObject:@"CAYCompoundDiff" forKey:@"org.objectstyle.cayenne.graph.CompoundDiff"];
- [classMapping setObject:@"CAYNodeCreateOperation" forKey:@"org.objectstyle.cayenne.graph.NodeCreateOperation"];
- [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"];
-
- // connect to the server
- // TODO: basic authentication and/or session management
NSURL * url = [NSURL URLWithString:@"http://localhost:8090/cayenne-service"];
- BBSHessianProxy * proxy = [[BBSHessianProxy alloc] initWithUrl:url];
- [BBSHessianProxy setClassMapping:classMapping];
-
- CAYHessianConnection *conn = [[CAYHessianConnection alloc] init];
- [conn setProxy:proxy];
- [proxy release];
+ CAYClientConnection *conn = [[CAYHessianConnection alloc] initWithUrl:url];
+ [conn connect];
CAYObjectContext *ctxt = [[CAYObjectContext alloc] init];
[ctxt setConnection:conn];
[conn release];
[self setObjectContext:ctxt];
-
- id result1 = [proxy callSynchronous:@"establishSession" withParameters:nil];
- NSLog(@"establishSession result: %@", result1);
-
- // send bootstrap message to get the EntityResolver
- CAYBootstrapMessage *bootstrapMsg = [[CAYBootstrapMessage alloc] init];
- id bootresult = [conn sendMessage:bootstrapMsg];
- if([bootresult isKindOfClass:[CAYEntityResolver class]])
- {
- CAYEntityResolver *resolver = (CAYEntityResolver *)bootresult;
- [ctxt setEntityResolver:resolver];
- }
- else
- {
- NSLog(@"ERROR: bootstrap answer not of type CATEntityResolver, but %@", [bootresult class]);
- }
- [bootstrapMsg release];
-
- // update class mapping based on EntityResolver
- [[ctxt entityResolver] updateClassMapping];
- [classMapping addEntriesFromDictionary:[[ctxt entityResolver] classMapping]];
-
- // update class mapping
- [BBSHessianProxy setClassMapping:classMapping];
-
-
- [classMapping release];
[ctxt release];
}
+
CAYNamedQuery *query = [[CAYNamedQuery alloc] init];
[query setName:@"objcquery"];
NSArray *rows = [[self objectContext] performQyery:query];