|
|
1.1 ! root 1: /* RelationshipKeySetter.h created by cfeder on Tue 08-Nov-1994 */ ! 2: ! 3: #import <eoaccess/eoaccess.h> ! 4: ! 5: @interface EOEntity (attrsNamed) ! 6: - attributesNamed:(NSArray *)names; ! 7: - createObject; ! 8: @end ! 9: ! 10: // Extensions to EORelationship to handle assigning foreign keys in ! 11: // objects when they are newly assigned to point at one another. ! 12: // For instance, if an employee is set to point at a new department object ! 13: // [toEmpRelationship updateKeysForSourceObject:theEmp destinationObject:theNewDept] ! 14: // will change to dept_id property of theEmp to the dept_id of theNewDept ! 15: // and return the modified object (theEmp) so the caller can make sure that object ! 16: // is updated in the database. ! 17: // ! 18: // The following relationship types are handled: ! 19: // ! 20: // M Detail Insert rule Delete Types ! 21: // PK -> PK D->PK := M->PK delete D to-one ! 22: // FK -> PK M->FK := D->PK M->FK=NULL to-one ! 23: // PK -> FK D->FK := M->PK Delete D to-many ! 24: // Many to many create link obj Delete link to-many ! 25: // ! 26: // Decoding: The first line means, when a relationship joins from the ! 27: // primary key of the master entity to the primary key of the detail, ! 28: // handle and insertion by setting the primary key of the detail to match ! 29: // the primary key of the master. ! 30: // ! 31: @interface EORelationship (setPropsInDestObject) ! 32: - (NSArray *)sourceKeys; ! 33: - (NSDictionary *)destinationValuesFromSourceObject:sourceObject; ! 34: - (void)setJoinPropertiesInDestinationObject:destination fromSourceObject:source; ! 35: - (void)setJoinPropertiesInSourceObject:source fromDestinationObject:destination; ! 36: - (BOOL)hasJoinsOnPrimaryKeyOfSourceEntity; ! 37: - (void)updateMasterObject:master withNewDestinationObject:destination; ! 38: - linkObjectForSourceObject:master destinationObject:destination; ! 39: - updateKeysForSourceObject:source destinationObject:destination; ! 40: // Sets keys on source or destination to maintain consistency for ! 41: // the source to now map to destination for this relationship. ! 42: // Does not actually assign destination to ivar in source (just messes ! 43: // with the keys). ! 44: // Returns the modified object (source or destination). In the case of ! 45: // a many to many returns a newly created link object. ! 46: ! 47: - updateKeysForDeleteOfDestinationObject:destination fromSourceObject:source; ! 48: // Sets keys on source or destination to maintain consistency for ! 49: // a delete of the destination from the source. Returns the object ! 50: // modified, or a synthesized link object that must be deleted to ! 51: // affect the delete. The caller is responsible for updating the ! 52: // source object, or deleting the destination or link in the database. ! 53: // ! 54: // This does not actually update destination to ivar in source (just messes ! 55: // with the keys). ! 56: @end ! 57:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.