TODO in activefacts-api-0.9.9 vs TODO in activefacts-api-1.0.0

- old
+ new

@@ -1,45 +1,7 @@ -Performance - Each object type (class) needs fast access to: - Its identifying roles - Its supertypes that have alternate identification - The roles it plays in identifying other object types - Each one-to-many role needs: - A method to derive a counterpart (RoleValues) key from a full key - Each class needs - An adapt() method to convert offered values to a full key - an assign_all method - that can perform "atomic" identity change - Constellation needs assert_instance that for a given class: - adapts all keys from identifying values - checks either non-existence or uniqueness and type of the identified object for all such keys - instantiates the object if previously non-existent - (instantiates role subtypes by mixing in if this instance did not exist but the class is mixed in another extant object) - assigns non-identifying values - Pre-define ObjectType accessor methods on constellation, rather than using method_missing - -Role objects: - TEST: Access through class-level accessors - -Reindexing on identifier change - De-index on change, arrange for re-index on completion - Re-index all objects this identifies (keep track of roles-as-identifier) - Save "key" value - Nested block to accumulate changed identifiers and re-index at end? - -Switch to rbtree from Hash +Default to rbtree from Hash For InstanceIndex For RoleValues - Index into RoleValues by key residual, not full key (worth doing?) -Testing - Complete pending tests - Add heckle coverage - Constraints Ensure role methods arguments are flexible for plugins Make mandatory work (propagate retraction? or just optionally?) - -Functionality - Finish Constellation.assert - Replace inspect by verbalise - Query API and execution