[Zope-CMF] Reference Engine Componentization
whit
whit at burningman.com
Mon Jan 9 13:15:28 EST 2006
sorry for the cross post, but I know there are a number of other
reference engines out there and I would like to get input as we look
at moving the AT ref engine being a component.
here is a rough list of steps:
1) move current storage of references to use IAnnotations for new
content / reference classes. Create a layer of indirection, making
reference storage a configurable option.
2) refactor UID storage to use IAnnotations
3) implement IReferenceable to replace Referenceable mixin, implement
IReference to coexist with Reference class
4) allow for configuration of references as z3 content classes
5) deprecate add / delete hooks, replace with event subscribers
6) convert reference_catalog and uid_catalog to z3 local utilities
7) extend reference_catalog to allow for query by interface. Deprecate
query by reference class.
8) deprecate direct access to IReferenceable
For this to be truly effective, all calls to the methods currently
provided by IReferenceable would need to go through an adapter ie::
>>> MyATObj.getRefs()
becomes::
>>> IReferenceable(MyATObj).getRefs()
After implementing 1-8, storage, utilities, how references are accessed,
hook behavior and what classes are referenceable will be configurable as
components.
the two primary access mechanisms for reference information are direct
catalog query and direct access to the at reference object. Both
cataloging refs and returning references is handled by the mixin
Referenceable. Ideally, it would be possible to make IRefereable return
objects implementing IReference from zemantic, or some other storage
capable of fully describing AT style relationships, as well as handling
the cataloging of said relationships.
-w
More information about the Zope-CMF
mailing list