/** * {@inheritDoc} * * @param componentKey * @return * @see org.picocontainer.MutablePicoContainer#removeComponent(java.lang.Object) */ public ComponentAdapter removeComponent(final Object componentKey) { if (logger.isDebugEnabled()) { logger.debug("Unregistering component " + componentKey + " from container " + delegate); } return delegate.removeComponent(componentKey); }
public Object remove(final Object o) { ComponentAdapter adapter = mutablePicoContainer.removeComponent(o); if (adapter != null) { // if previously an instance was registered, return it, otherwise return the type return adapter instanceof InstanceAdapter ? adapter.getComponentInstance(mutablePicoContainer, ComponentAdapter.NOTHING.class) : adapter.getComponentImplementation(); } else { return null; } }
/** * Adds the object to Saros' container, and injects dependencies into the annotated fields of the * given object. It should only be used for objects that were created by Eclipse, which have the * same life cycle as the Saros plug-in, e.g. the popup menu actions. */ public synchronized void reinject(Object toInjectInto) { try { // Remove the component if an instance of it was already registered Class<?> clazz = toInjectInto.getClass(); ComponentAdapter<?> removed = container.removeComponent(clazz); if (removed != null) { log.warn(clazz.getName() + " added more than once!", new StackTrace()); } // Add the given instance to the container container.addComponent(clazz, toInjectInto); /* * Ask PicoContainer to inject into the component via fields * annotated with @Inject */ reinjector.reinject(clazz, new AnnotatedFieldInjection()); } catch (PicoCompositionException e) { log.error("Internal error in reinjection:", e); } }
public void clear() { Set adapters = keySet(); for (Object adapter : adapters) { mutablePicoContainer.removeComponent(adapter); } }
public void removeComponent(Object o) { container.removeComponent(o); }