[Zope3-Users] Re: Get classes implementing Interface

Philipp von Weitershausen philipp at weitershausen.de
Fri Dec 30 07:30:18 EST 2005


Florian Lindner wrote:
> my first use case is that I want to enhance the HomefolderManager to make it 
> possible to select something else than a Folder to be created automatically. 
> Right now I have forked a version of the HomefolderManager and just changed 
> in the code. But I would like to have a more generic solution and I'll also 
> commit it back to the trunk.
> For that I want all classes implementing IContainer (and IContentType ?) and 
> let the user select on in the configuration dialog of the HomefolderManager.
> More use caess probably show up in my project later, but nothing fixed at this 
> time.

So what you want is to create objects. Classes are just an
implementation detail to creating objects :). Factories create objects,
whether they're from a class is immaterial.

So, what you want is not a list of classes but a list of factories that
can create IContainers. This is possible by using
zapi.getUtilitiesFor(IFactory) and then checking each factory's
getInterfaces() method whether IContainer is a part of the returned
result. I would probably base an implementation of all on the
UtilityVocabulary.

Philipp


More information about the Zope3-users mailing list