[Zope-CMF] IndexableObjectWrapper

Martin Aspeli optilude+lists at gmail.com
Tue Mar 10 15:18:17 EDT 2009


yuppie wrote:
> Martin Aspeli wrote:
>> yuppie wrote:
>>
>>> AFAICS wrapping the object before looking up adapters is unnecessary. 
>>> The catalog should do the lookup directly and the existing features 
>>> provided by IndexableObjectWrapper should be reimplemented as adapters.
>> Bear in mind that there is a difference between getting the wrapper 
>> itself, and getting the value to catalogue for a particular *attribute* 
>> of the wrapper (e.g. allowedRolesAndUsers).
> 
> Why do we need the wrapper? Why can't we look up directly the adapter 
> for the particular attribute?

This could work as well. It does make it harder to change the policy en 
masse for a particular type (you'd need to override all the adapters, 
say). One reason to do that may be if you have a very simple object that 
you know exactly how to catalogue, and you don't want the overhead of 
looking up various adapters.

Still, the important use case, imho, is to make custom "indexers" for 
your custom types. I quite like the pattern in plone.indexer where we 
use an annotation to make a function into an indexer adapter:

http://pypi.python.org/pypi/plone.indexer

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book



More information about the Zope-CMF mailing list