Andi Vajda wrote:

On Thu, 9 Mar 2006, Alec Flett wrote:

The "collection item notifications" seem to have a distinctly different API than the other notifications. instead of 'subscriber.watchXXX(item, ..., methodName)' it is in the form 'collection.notificationQueueSubscribe(subscriber)'

Is there a reason it has this different API? The other methods are actual methods on the subscriber, rather than the item being subscribed to. Second, the other systems allow you to specify a method name, which seems quite valuable.. It seems like it would be nice to be consistent with the APIs across all the notification systems.

No particular reason other than history. I've been wondering about that myself. Maybe I'll add a watchQueue(collectionItem, methodName) API....
I think that something like watchQueue would be a good idea. Also, implementing transient subscriptions by indirecting of the itsView attribute is not very intuitive. Could you have a transient version of the method or pass a flag as an argument?

On the collections API, you've switched a create at construction time model. Does this mean it will be impossible to restructure the collection tree, short of destroying a subtree and constructing an entirely new one?

In your post, the collections that you show descend from Collection but also need to have their __metaclass__ set to schema.CollectionClass, since this is always needed (if I understand correctly), is there a way to make it so that setting the __metaclass__ is unnecessary?

Finally, I understand that using an explicit __collection__ attribute is more general, but if you look at the way that collections are used, the application will probably never make use of that generality. But now all the collection classes require passing tuples including __collection__ arguments, which makes for more boilerplate code in the common case. It seems like there could be better defaults for the common cases.

Ted
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to