[Zope3-dev] Contained events interface inheritance order

Florent Guillaume fg at nuxeo.com
Wed Nov 23 19:24:06 EST 2005


Today the contained events interfaces are:
   class IObjectMovedEvent(IObjectEvent)
   class IObjectAddedEvent(IObjectMovedEvent)
   class IObjectRemovedEvent(IObjectMovedEvent)

 From the archives I can find this was decided after:
http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/ 
SimplifyObjectLifecycleAndLocationEvents
but without motivation for this part. I'm still looking for the  
motivation...

Before that proposal, the hierarchy was:
   class IObjectAddedEvent(IObjectEvent)
   class IObjectRemovedEvent(IObjectEvent)
   class IObjectMovedEvent(IObjectAddedEvent, IObjectRemovedEvent)

I contend that this second hierarchy is much more useful to deal  
with. The arguments I have are in the use cases explained in:
http://blogs.nuxeo.com/sections/blogs/florent_guillaume/ 
2005_11_08_events-in-zope-2-9
where you can see the hoops one has to go through to react to objects  
being created, deleted or moved with the current event hierarchy.

I'd like to know what non-framework use cases people have today with  
the current event interfaces hierarchy, and if they really find it  
more useful than the old one.

If not, or if the use cases are borderline, I'd like to propose that  
the hierarchy be moved back to the second form. This would have to go  
through a deprecation phase, I'm not sure exactly how, but if there's  
consensus we can find a way.

Myself I consider the current hierarchy to be a design bug.

Florent

-- 
Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com





More information about the Zope3-dev mailing list