[Zope3-dev] Re: [Zope3-Users] Re: Get classes implementing Interface

Florian Lindner mailinglists at xgm.de
Wed Jan 4 10:05:14 EST 2006


Am Samstag, 31. Dezember 2005 14:48 schrieb Florian Lindner:
> Am Freitag, 30. Dezember 2005 20:57 schrieb Jeff Shell:
> > On 12/30/05, Florian Lindner <mailinglists at xgm.de> wrote:
> > > Am Freitag, 30. Dezember 2005 17:45 schrieb Jim Fulton:
> > > > Philipp von Weitershausen wrote:
> > > > > 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.
> > > >
> > > > I'll also note that the use case is also directly addressed through
> > > > containment constraints.  You can say that a container
> > > > should only contain objects of some given types and you will get
> > > > just those types in the add list.
> > >
> > > But the HomeFolderManager is not a container itself it's just a utility
> > > that creates container upon requests. And I want to make choosable
> > > which container to create. Or do I misunderstand you?
> >
> > Well first (and I apologize if this has been mentioned before),
> > 'containers' are a more abstract notion while 'folders' are more
> > concrete. A message or document that allows comments might be a
> > container, but it's not something that you'd see in the ZMI or any
> > content management type interface as a folder. You'd see it as an
> > article.
> >
> > Something that's "Folderish" (to drag up an old term) will probably
> > have a folder icon, will probably (but not necessarily) will have
> > sub-folders, will have a view to manage its contents, and so on.
>
> [...]
>
> Basically the HomeFolderManager (HFM) only creates an 1:1 relation between
> a principal and an object. It can also auto-create these objects if the
> relation is being read for the first time. In this case the object to be
> created is hardcoded to be a zope.app.folder.Folder. The HFM does not care
> what is being done with the objects it just returns them.
> In my project I've another folderish object that I want to have created,
> therefore I forked the HFM and modified the code to create the object I
> want. Of course, the common use case would be to create a folderish object,
> but any other kind of objects would make sense to. A principal could have a
> home page (just one site) which is not folderish neither a IContainer which
> could the HFM return. Or a project which can contain comments, which is not
> folderis either but is an IContainer implemention.
> I think that the HFM should allow creation of ANY objects, regardless of
> being folderish or IContainer implemenations. Of course, the name
> HomeFOLDERManager would not make sense anymore in this case.
>
> What do you think?
>
> Florian

No thoughts / opinions of anyone?

Can I make the changes to the HomeFolderManager (list box of all classes 
implementing IContainer to select which class to create) and commit?

Florian


More information about the Zope3-users mailing list