Author: torehalset
Date: Mon Sep 18 13:06:18 2006
New Revision: 447531

URL: http://svn.apache.org/viewvc?view=rev&rev=447531
Log:
added CAYDataMapIO to create NSManagedObjectModel from a
CAYDataMap

Added:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.m
Modified:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m
    
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m?view=diff&rev=447531&r1=447530&r2=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m 
(original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m Mon 
Sep 18 13:06:18 2006
@@ -31,6 +31,7 @@
     [classMapping setObject:@"CAYGenericResponse" 
forKey:@"org.apache.cayenne.util.GenericResponse"];
     [classMapping setObject:@"CAYObjectId" 
forKey:@"org.apache.cayenne.ObjectId"];
     [classMapping setObject:@"CAYObjEntity" 
forKey:@"org.apache.cayenne.map.ObjEntity"];
+    [classMapping setObject:@"CAYObjAttribute" 
forKey:@"org.apache.cayenne.map.ObjAttribute"];
     [classMapping setObject:@"CAYClientObjRelationship" 
forKey:@"org.apache.cayenne.map.ClientObjRelationship"];
     [classMapping setObject:@"CAYEntityResolver" 
forKey:@"org.apache.cayenne.map.EntityResolver"];
     [classMapping setObject:@"CAYDataMap" 
forKey:@"org.apache.cayenne.map.DataMap"];

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h?view=diff&rev=447531&r1=447530&r2=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.h Mon Sep 18 
13:06:18 2006
@@ -19,6 +19,7 @@
 
 #import <Cocoa/Cocoa.h>
 
+#import "CAYObjEntity.h"
 
 @interface CAYDataMap : NSObject <NSCoding> {
 
@@ -31,5 +32,7 @@
 -(NSString *)name;
 -(void)setObjEntityMap:(NSMutableDictionary *)oem;
 -(NSMutableDictionary *)objEntityMap;
+
+-(NSString *)classNameForObjEntity:(CAYObjEntity *)entity;
 
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m?view=diff&rev=447531&r1=447530&r2=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMap.m Mon Sep 18 
13:06:18 2006
@@ -65,6 +65,12 @@
     return objEntityMap;
 }
 
+-(NSString *)classNameForObjEntity:(CAYObjEntity *)entity;
+{
+    // TODO: handle prefix for class name. Like MYPROJECTArtist
+    return [entity name];
+}
+
 -(void)dealloc
 {
     [self setName:nil];

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.h
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.h?view=auto&rev=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.h Mon Sep 
18 13:06:18 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 "CAYEntityResolver.h"
+#import "CAYDataMap.h"
+
[EMAIL PROTECTED] CAYDataMapIO : NSObject {
+
+}
+
++(NSManagedObjectModel *)dataMapAsManagedObjectModel:(CAYDataMap *)dataMap 
entityResolver:(CAYEntityResolver *)resolver;
+
[EMAIL PROTECTED]

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.m
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.m?view=auto&rev=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYDataMapIO.m Mon Sep 
18 13:06:18 2006
@@ -0,0 +1,148 @@
+/*****************************************************************
+*   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 "CAYDataMapIO.h"
+
+#import "CAYObjEntity.h"
+#import "CAYObjAttribute.h"
+#import "CAYClientObjRelationship.h"
+
[EMAIL PROTECTED] CAYDataMapIO
+
++(NSManagedObjectModel *)dataMapAsManagedObjectModel:(CAYDataMap *)dataMap 
entityResolver:(CAYEntityResolver *)resolver
+{
+    NSManagedObjectModel *cdModel = [[NSManagedObjectModel alloc] init];
+    
+    // collect all properties (attributes, relationships) and set them after 
creating
+    // all entities
+    NSMutableDictionary *cdPropertiesByEntityName = [NSMutableDictionary 
dictionary];
+    
+    // entities
+    NSMutableDictionary *cdEntityByEntityName = [NSMutableDictionary 
dictionary];
+    NSMutableArray *cdEntities = [NSMutableArray array];
+    NSEnumerator *entityEnumerator = [[dataMap objEntityMap] keyEnumerator];
+    NSString *entityName = nil;
+    while(entityName = [entityEnumerator nextObject])
+    {
+        CAYObjEntity *cayEntity = [[dataMap objEntityMap] 
valueForKey:entityName];
+        NSEntityDescription *cdEntity = [[NSEntityDescription alloc] init];
+        [cdEntity setName:[cayEntity name]];
+        [cdEntity setManagedObjectClassName:[dataMap 
classNameForObjEntity:cayEntity]];
+        [cdEntityByEntityName setObject:cdEntity forKey:entityName];
+        
+        // attributes
+        NSMutableArray *cdAttributes = [NSMutableArray array];
+        NSEnumerator *cayAttributeEnumerator = [[cayEntity attributes] 
keyEnumerator];
+        NSString *attributeName = nil;
+        while(attributeName = [cayAttributeEnumerator nextObject])
+        {
+            CAYObjAttribute *cayAttribute = [[cayEntity attributes] 
valueForKey:attributeName];
+            NSAttributeDescription *cdAttribute = [[NSAttributeDescription 
alloc] init];
+            [cdAttribute setName:[cayAttribute name]];
+            [cdAttributes addObject:cdAttribute];
+            [cdAttribute release];
+        }
+        [cdPropertiesByEntityName setObject:cdAttributes forKey:entityName];
+        
+        [cdEntities addObject:cdEntity];
+        [cdEntity release];
+    }
+    [cdModel setEntities:cdEntities];
+    
+    // relationships. must be done after all entities are handled
+    NSMutableDictionary *relationshipsByEntityName = [NSMutableDictionary 
dictionary];
+    entityEnumerator = [[dataMap objEntityMap] keyEnumerator];
+    while(entityName = [entityEnumerator nextObject])
+    {
+        CAYObjEntity *cayEntity = [[dataMap objEntityMap] 
valueForKey:entityName];
+        
+        NSMutableDictionary *relationshipsByRelationName = 
[NSMutableDictionary dictionary];
+        
+        NSEnumerator *relEnumerator = [[cayEntity relationships] 
keyEnumerator];
+        NSMutableArray *properties = [cdPropertiesByEntityName 
valueForKey:entityName];
+        NSString *relName = nil;
+        while(relName = [relEnumerator nextObject])
+        {
+            CAYClientObjRelationship *cayRelationship = [[cayEntity 
relationships] valueForKey:relName];
+            NSRelationshipDescription *cdRelationship = 
[[NSRelationshipDescription alloc] init];
+            [cdRelationship setName:relName];
+            NSEntityDescription *destEntity = [cdEntityByEntityName 
valueForKey:[cayRelationship targetEntityName]];
+            [cdRelationship setDestinationEntity:destEntity];
+            
+            // set min/max count based on toMany
+            [cdRelationship setMinCount:0];
+            if([cayRelationship isToMany])
+            {
+                // TODO: documentation says -1 for toMany, but ctrl-esc says 
unsigned int..
+                [cdRelationship setMaxCount:-1];
+            }
+            else
+            {
+                [cdRelationship setMaxCount:1];
+            }
+            
+            [relationshipsByRelationName setObject:cdRelationship 
forKey:relName];
+            [properties addObject:cdRelationship];
+            [cdRelationship release];
+        }
+        
+        [relationshipsByEntityName setObject:relationshipsByRelationName 
forKey:entityName];
+    }
+    
+    // reverse relationships.. must be done after all relationships are created
+    entityEnumerator = [[dataMap objEntityMap] keyEnumerator];
+    while(entityName = [entityEnumerator nextObject])
+    {
+        CAYObjEntity *cayEntity = [[dataMap objEntityMap] 
valueForKey:entityName];
+        NSDictionary *cdRelationshipsByRelationName = 
[relationshipsByEntityName valueForKey:entityName];
+        
+        NSEnumerator *relEnumerator = [[cayEntity relationships] 
keyEnumerator];
+        NSString *relName = nil;
+        while(relName = [relEnumerator nextObject])
+        {
+            CAYClientObjRelationship *cayRelationship = [[cayEntity 
relationships] valueForKey:relName];
+            NSRelationshipDescription *cdRelationship = 
[cdRelationshipsByRelationName objectForKey:[cayRelationship name]];
+            if(!cdRelationship)
+            {
+                NSLog(@"ERROR: did not find core data relationship. base: 
[EMAIL PROTECTED]@", entityName, [cayRelationship name]);
+            }
+            
+            NSMutableDictionary *cdInverseRelationshipsByRelationName = 
[relationshipsByEntityName valueForKey:[cayRelationship targetEntityName]];
+            NSRelationshipDescription *cdInverseRelationship = 
[cdInverseRelationshipsByRelationName valueForKey:[cayRelationship 
reverseRelationshipName]];
+            if(!cdInverseRelationship)
+            {
+                NSLog(@"ERROR: did not find core data relationship. base: 
[EMAIL PROTECTED]@, inverse: [EMAIL PROTECTED]@", entityName, [cayRelationship 
name], [cayRelationship targetEntityName], [cayRelationship 
reverseRelationshipName]);
+            }
+            [cdRelationship setInverseRelationship:cdInverseRelationship];
+        }            
+    }        
+    
+    // set all properties
+    NSEnumerator *propertiesEnumerator = [cdPropertiesByEntityName 
keyEnumerator];
+    while(entityName = [propertiesEnumerator nextObject])
+    {
+        NSEntityDescription *cdEntity = [cdEntityByEntityName 
valueForKey:entityName];
+        NSArray *properties = [cdPropertiesByEntityName 
valueForKey:entityName];
+        [cdEntity setProperties:properties];
+    }
+    
+    return [cdModel autorelease];
+}
+
[EMAIL PROTECTED]

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.h
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.h?view=auto&rev=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.h 
(added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.h Mon 
Sep 18 13:06:18 2006
@@ -0,0 +1,36 @@
+/*****************************************************************
+*   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 "CAYObjEntity.h"
+
[EMAIL PROTECTED] CAYObjEntity;
+
[EMAIL PROTECTED] CAYObjAttribute : NSObject <NSCoding> {
+
+    NSString *name;
+    CAYObjEntity *objEntity;
+    
+}
+
+-(void)setName:(NSString *)n;
+-(NSString *)name;
+
[EMAIL PROTECTED]

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.m
URL: 
http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.m?view=auto&rev=447531
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.m 
(added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjAttribute.m Mon 
Sep 18 13:06:18 2006
@@ -0,0 +1,56 @@
+/*****************************************************************
+*   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 "CAYObjAttribute.h"
+
+
[EMAIL PROTECTED] CAYObjAttribute
+
+-(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)dealloc
+{
+       [self setName:nil];
+       [super dealloc];
+}
+
[EMAIL PROTECTED]

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=447531&r1=447530&r2=447531
==============================================================================
--- 
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
 (original)
+++ 
incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
 Mon Sep 18 13:06:18 2006
@@ -7,6 +7,8 @@
        objects = {
 
 /* Begin PBXBuildFile section */
+               4407C1320ABAD50D0065409F /* CAYObjAttribute.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 4407C1300ABAD50D0065409F /* CAYObjAttribute.h 
*/; settings = {ATTRIBUTES = (Public, ); }; };
+               4407C1330ABAD50D0065409F /* CAYObjAttribute.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 4407C1310ABAD50D0065409F /* CAYObjAttribute.m 
*/; };
                4421E61E0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 4421E61C0AA4EE2D00FBE975 /* 
CAYNodeIdChangeOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
                4421E61F0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 4421E61D0AA4EE2D00FBE975 /* 
CAYNodeIdChangeOperation.m */; };
                442607380AA4B8DE00F0A01F /* CAYNodeCreateOperation.h in Headers 
*/ = {isa = PBXBuildFile; fileRef = 442607360AA4B8DE00F0A01F /* 
CAYNodeCreateOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -67,6 +69,8 @@
                444DAB1A0AACB74C006E1768 /* CAYArcCreateOperation.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = 444DAB180AACB74C006E1768 /* 
CAYArcCreateOperation.m */; };
                444DAB270AACB7B1006E1768 /* CAYArcDeleteOperation.h in Headers 
*/ = {isa = PBXBuildFile; fileRef = 444DAB250AACB7B1006E1768 /* 
CAYArcDeleteOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
                444DAB280AACB7B1006E1768 /* CAYArcDeleteOperation.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = 444DAB260AACB7B1006E1768 /* 
CAYArcDeleteOperation.m */; };
+               44BD0F9D0ABF08320005EE1E /* CAYDataMapIO.h in Headers */ = {isa 
= PBXBuildFile; fileRef = 44BD0F9B0ABF08320005EE1E /* CAYDataMapIO.h */; 
settings = {ATTRIBUTES = (Public, ); }; };
+               44BD0F9E0ABF08320005EE1E /* CAYDataMapIO.m in Sources */ = {isa 
= PBXBuildFile; fileRef = 44BD0F9C0ABF08320005EE1E /* CAYDataMapIO.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 */; 
};
@@ -78,6 +82,8 @@
                089C1667FE841158C02AAC07 /* English */ = {isa = 
PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; 
name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; 
};
                1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree 
= "<absolute>"; };
                32DBCF5E0370ADEE00C91783 /* CocoaCayenne_Prefix.pch */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
CocoaCayenne_Prefix.pch; sourceTree = "<group>"; };
+               4407C1300ABAD50D0065409F /* CAYObjAttribute.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
CAYObjAttribute.h; sourceTree = "<group>"; };
+               4407C1310ABAD50D0065409F /* CAYObjAttribute.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CAYObjAttribute.m; sourceTree = "<group>"; };
                4421E61C0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; 
path = CAYNodeIdChangeOperation.h; sourceTree = "<group>"; };
                4421E61D0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = CAYNodeIdChangeOperation.m; sourceTree = "<group>"; };
                442607360AA4B8DE00F0A01F /* CAYNodeCreateOperation.h */ = {isa 
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path 
= CAYNodeCreateOperation.h; sourceTree = "<group>"; };
@@ -138,6 +144,8 @@
                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>"; };
+               44BD0F9B0ABF08320005EE1E /* CAYDataMapIO.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
CAYDataMapIO.h; sourceTree = "<group>"; };
+               44BD0F9C0ABF08320005EE1E /* CAYDataMapIO.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= CAYDataMapIO.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; };
@@ -204,20 +212,13 @@
                                44463DCC0AA37586006BAA58 /* message */,
                                44463DCD0AA37590006BAA58 /* graph */,
                                44463DCE0AA375F8006BAA58 /* query */,
-                               44463D710AA37577006BAA58 /* 
CAYClientObjRelationship.h */,
-                               44463D720AA37577006BAA58 /* 
CAYClientObjRelationship.m */,
-                               44463D750AA37577006BAA58 /* CAYDataMap.h */,
-                               44463D760AA37577006BAA58 /* CAYDataMap.m */,
-                               44463D770AA37577006BAA58 /* CAYEntityResolver.h 
*/,
-                               44463D780AA37577006BAA58 /* CAYEntityResolver.m 
*/,
+                               4407C06F0ABACE700065409F /* model */,
                                44463D7B0AA37577006BAA58 /* 
CAYGenericResponse.h */,
                                44463D7C0AA37577006BAA58 /* 
CAYGenericResponse.m */,
                                44463D850AA37577006BAA58 /* CAYObjectContext.h 
*/,
                                44463D860AA37577006BAA58 /* CAYObjectContext.m 
*/,
                                44463D870AA37577006BAA58 /* CAYObjectId.h */,
                                44463D880AA37577006BAA58 /* CAYObjectId.m */,
-                               44463D890AA37577006BAA58 /* CAYObjEntity.h */,
-                               44463D8A0AA37577006BAA58 /* CAYObjEntity.m */,
                                44463D8B0AA37577006BAA58 /* 
CAYPersistentObject.h */,
                                44463D8C0AA37577006BAA58 /* 
CAYPersistentObject.m */,
                                44463D930AA37577006BAA58 /* CAYRemoteSession.h 
*/,
@@ -254,6 +255,25 @@
                        name = "Other Sources";
                        sourceTree = "<group>";
                };
+               4407C06F0ABACE700065409F /* model */ = {
+                       isa = PBXGroup;
+                       children = (
+                               44463D770AA37577006BAA58 /* CAYEntityResolver.h 
*/,
+                               44463D780AA37577006BAA58 /* CAYEntityResolver.m 
*/,
+                               44463D750AA37577006BAA58 /* CAYDataMap.h */,
+                               44463D760AA37577006BAA58 /* CAYDataMap.m */,
+                               44463D890AA37577006BAA58 /* CAYObjEntity.h */,
+                               44463D8A0AA37577006BAA58 /* CAYObjEntity.m */,
+                               44463D710AA37577006BAA58 /* 
CAYClientObjRelationship.h */,
+                               44463D720AA37577006BAA58 /* 
CAYClientObjRelationship.m */,
+                               4407C1300ABAD50D0065409F /* CAYObjAttribute.h 
*/,
+                               4407C1310ABAD50D0065409F /* CAYObjAttribute.m 
*/,
+                               44BD0F9B0ABF08320005EE1E /* CAYDataMapIO.h */,
+                               44BD0F9C0ABF08320005EE1E /* CAYDataMapIO.m */,
+                       );
+                       name = model;
+                       sourceTree = "<group>";
+               };
                44463DCB0AA3757F006BAA58 /* fault */ = {
                        isa = PBXGroup;
                        children = (
@@ -366,6 +386,8 @@
                                444DA8050AA61E54006E1768 /* CAYCocoaCayenne.h 
in Headers */,
                                444DAB190AACB74C006E1768 /* 
CAYArcCreateOperation.h in Headers */,
                                444DAB270AACB7B1006E1768 /* 
CAYArcDeleteOperation.h in Headers */,
+                               4407C1320ABAD50D0065409F /* CAYObjAttribute.h 
in Headers */,
+                               44BD0F9D0ABF08320005EE1E /* CAYDataMapIO.h in 
Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -453,6 +475,8 @@
                                444DA8060AA61E54006E1768 /* CAYCocoaCayenne.m 
in Sources */,
                                444DAB1A0AACB74C006E1768 /* 
CAYArcCreateOperation.m in Sources */,
                                444DAB280AACB7B1006E1768 /* 
CAYArcDeleteOperation.m in Sources */,
+                               4407C1330ABAD50D0065409F /* CAYObjAttribute.m 
in Sources */,
+                               44BD0F9E0ABF08320005EE1E /* CAYDataMapIO.m in 
Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };


Reply via email to