public List getComponentAdaptersOfType(Class componentType) { if (componentType == null) { return Collections.EMPTY_LIST; } List found = new ArrayList(); for (Iterator iterator = getComponentAdapters().iterator(); iterator.hasNext();) { ComponentAdapter componentAdapter = (ComponentAdapter) iterator.next(); if (componentType.isAssignableFrom(componentAdapter.getComponentImplementation())) { found.add(componentAdapter); } } return found; }
public void accept(PicoVisitor visitor) { visitor.visitContainer(this); final List componentAdapters = new ArrayList(getComponentAdapters()); for (Iterator iterator = componentAdapters.iterator(); iterator.hasNext();) { ComponentAdapter componentAdapter = (ComponentAdapter) iterator.next(); componentAdapter.accept(visitor); } final List allChildren = new ArrayList(children); for (Iterator iterator = allChildren.iterator(); iterator.hasNext();) { PicoContainer child = (PicoContainer) iterator.next(); child.accept(visitor); } }
public ComponentAdapter unregisterComponentByInstance(Object componentInstance) { Collection componentAdapters = getComponentAdapters(); for (Iterator iterator = componentAdapters.iterator(); iterator.hasNext();) { ComponentAdapter componentAdapter = (ComponentAdapter) iterator.next(); if (getInstance(componentAdapter).equals(componentInstance)) { return unregisterComponent(componentAdapter.getComponentKey()); } } return null; }
/** * {@inheritDoc} * Loops over all component adapters and invokes * start(PicoContainer) method on the ones which are LifecycleManagers */ public void start(PicoContainer node) { Collection adapters = getComponentAdapters(); for (final Iterator iter = adapters.iterator(); iter.hasNext();) { final ComponentAdapter adapter = (ComponentAdapter)iter.next(); if ( adapter instanceof LifecycleManager ){ LifecycleManager manager = (LifecycleManager)adapter; if (manager.hasLifecycle()) { // create an instance, it will be added to the ordered CA list adapter.getComponentInstance(node); addOrderedComponentAdapter(adapter); } } } adapters = orderedComponentAdapters; // clear list of started CAs startedComponentAdapters.clear(); for (final Iterator iter = adapters.iterator(); iter.hasNext();) { final Object adapter = iter.next(); if ( adapter instanceof LifecycleManager ){ LifecycleManager manager = (LifecycleManager)adapter; manager.start(node); startedComponentAdapters.add(adapter); } } }