--On 28. Februar 2008 09:38:31 +0100 yuppie <[EMAIL PROTECTED]> wrote:
Hi! Andreas Jung wrote:How about the following idea: - within the Zope core we define an _optional_ interface for indexes - something like: class IIndexConfiguration(Interface): def getConfiguration(): """ Returns a dict with index specific configuration parameters. """ - on the CMF/GS side we could register adapter for each index type we know (basically the Zope 2 core indexes, ExtendedPathIndex, TextIndexNG 3) and retrieve the related information - the related GS asks each index for its configuration and takes appropriate action based on the comparison of the values from the profile and the existing index. Adding the interface to Zope 2.11 or backporting it to Zope 2.10 would not be a problem. Since the Zope 2.11 branch is offically closed for new features, the index specific implementations of IIndexConfiguration should be implemented outside the Zope core but we might move the implementation into the Zope core with Zope 2.12. Sounds reasonable?Yes. textindexng already has getSettings(), I used it for the export/import code of TextIndexNG3: http://textindexng.svn.sourceforge.net/viewvc/textindexng/TextIndexNG3/tr unk/exportimport.py?revision=1833&view=markup That code compares the settings and makes sure TextIndexNG3 is only modified and cleared if necessary. We could use similar code for all other indexes if they would provide a method like that. I'd prefer a IConfigurableIndex interface that also has a set method.
I added the IIndexConfiguration to the Zope trunk. I don't think that a set method is a good idea. Removing and re-adding is possibly the cleanest solution. Some indexes might perform some configurations within their constructor. Calling clear() would not be enough for getting their configuration right.
Andreas
pgpYvrrivZiSA.pgp
Description: PGP signature
_______________________________________________ Zope-CMF maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
