'Add a component to me, for all appropriate interfaces.
In order to determine which interfaces are appropriate, the component\'s
provided interfaces will be scanned.
If the argument \'ignoreClass\' is True, then all interfaces are
considered appropriate.
Otherwise, an \'appropriate\' interface is one for which its class has
been registered as an adapter for my class according to the rules of
getComponent.
@return: the list of appropriate interfaces'

def addComponent(self, component, ignoreClass=0):

    for iface in declarations.providedBy(component):
        if (ignoreClass or (self.locateAdapterClass(self.__class__, iface, None) == component.__class__)):
            self._adapterCache[reflect.qual(iface)] = component
