=================== CollectionKit 0.0.1 =================== CollectionKit provides a common storage facility for records with properties, such as contact information, playlist, bookmark, etc. These records have defined structure (property-value relationship) which can be handled better than general property list. But values of these properties are too flexible to be stored in database, for example, a contact information may have multipe home phone numbers. Records can be grouped and groups can have groups inside. AddressBook framework from Apple provides a good machenism of handling these kind of records and Addresses for GNUstep implements the same interface. CollectionKit aims to provide a general storage facility based on Addresses for GNUstep so that other applications and frameworks can easily handle their information in the same manner. CollectionKit provide very little pre-defined properties. Therefore, a framework on top of CollectionKit is needed if the information is intended to be shared by many applications. CollectionKit is based on Addresses for GNUStep made by Bjoern Giesler . Therefore, it uses LGPL as Addresses for GNUstep. Maintainer: Yen-Ju Chen Developer --------- * Each item has a unique ID in the collection. If an item is moved from one collection into another, it is COPIED, not just retained. Therefore, they have different unique ID. * All the records in collection are stored in flat. In another word, there is no hierarchical relationship between records. Groups are merely records which refer to other records. When adding a record into a group, the record MUST be in collection already. Groups do not retain other records. If a group is added into collection and the records it refers to does not, an inconsistency erorr occurs. * Currently, collection is stored in a property list of NSDictionary. All items are under the key CKItemsKey, and all groups are under the key CKGroupsKey. Both items and groups can be initialized with -initWithContentDictionary: and saved with -contentDictionary. * CollectionKit is a file-based storage system, just like database, instead of property list, which can exist solely on memory. Although CollectionKit use property list for now, the storage system may change in the future.