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