|
|
1.1 ! root 1: /* KeyGenerator.h created by cfeder on Wed 26-Oct-1994 */ ! 2: ! 3: #import <eoaccess/eoaccess.h> ! 4: ! 5: // This code provides an example of a generic key generation facility. ! 6: // This implementation is closely related to the UniqueKey example ! 7: // in /NextDeveloper/Examples/EnterpriseObjects. See the README file ! 8: // there for more information. ! 9: ! 10: @interface KeyGenerator : NSObject ! 11: { ! 12: EODatabaseDataSource *dataSource; ! 13: EOEntity *entity; ! 14: id currentMaxRecord; // uniqued object from the database ! 15: unsigned lastGranted, lastReserved; ! 16: } ! 17: - initWithEntity:(EOEntity *)entity dataSource:(EODatabaseDataSource *)dataSource; ! 18: - (unsigned)nextKey; ! 19: + keyGeneratorForEntity:(EOEntity *)entity; ! 20: // Returns a key generator object for the given entity. ! 21: // If called repeatedly with the same entity, returns the the same object. ! 22: + (unsigned)nexKeyForEntity:(EOEntity *)entity; ! 23: // Convenience for [[KeyGenerator keyGeneratorForEntity] nextKey] ! 24: ! 25: @end ! 26: ! 27: // Informal protocol on object to tell them to assign ! 28: // themselves primary keys. EO classes may want to override ! 29: // this with their own key generation scheme. The default implementation ! 30: // uses the KeyGenerator (above). ! 31: @interface NSObject (assignPrimaryKey) ! 32: - (void)assignPrimaryKeyForEntity:(EOEntity *)entity; ! 33: // uses the key generator to assign a new primary key to the entity ! 34: ! 35: - (void)assignPrimaryKeyIfNotAlreadyPresentForEntity:(EOEntity *)entity; ! 36: // does the above only if the object does not already have a ! 37: // primary key assigned. ! 38: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.