History for PlugInKind
??changed:
-
Like a Zope 'meta_type', a plug-in kind is a string which describes a kind of Zope object. Unlike a 'meta_type', plug-in kinds are used by more than one class of object. You can think of a plug-in kind as a sort of meta-meta_type, which groups together a variety of similar meta-types by the collaboration interfaces they support.
For example, the string '"Attribute Provider"' is a plug-in kind used for AttributeProviders. There can be many different classes whose instances act as AttributeProviders, but as long as their '__plugin_kind__' attribute is set to '"Attribute Provider"', they will be recognized by their PlugInContainers as AttributeProviders.
PlugInGroups display an "Add" list that only includes registered plug-ins of the correct plug-in kinds. (PlugInGroups can support more than one !PlugInKind, even though PlugIns can each only *be* of one !PlugInKind.)
Since PlugInGroups are restricted to a specific set of plug-in kinds, PlugInContainers can be assured that the PlugIns in those groups support whatever collaboration interfaces are required by the container.