org.picocontainer.injectors
Class MethodInjector

java.lang.Object
  extended by org.picocontainer.adapters.AbstractAdapter
      extended by org.picocontainer.injectors.AbstractInjector
          extended by org.picocontainer.injectors.SingleMemberInjector
              extended by org.picocontainer.injectors.MethodInjector
All Implemented Interfaces:
Serializable, ComponentAdapter, ComponentMonitorStrategy, LifecycleStrategy

public class MethodInjector
extends SingleMemberInjector

Instantiates components using Method Injection. Note that this class doesn't cache instances. If you want caching, use a Cached around this one.

Author:
Paul Hammant, Aslak Hellesøy, Jon Tirsén, Zohar Melamed, Jörg Schaible, Mauro Talevi
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.picocontainer.injectors.SingleMemberInjector
SingleMemberInjector.MemberInjectorParameterName
 
Nested classes/interfaces inherited from class org.picocontainer.injectors.AbstractInjector
AbstractInjector.AmbiguousComponentResolutionException, AbstractInjector.CyclicDependencyException, AbstractInjector.NotConcreteRegistrationException, AbstractInjector.UnsatisfiableDependenciesException
 
Field Summary
 
Fields inherited from class org.picocontainer.injectors.AbstractInjector
lifecycleStrategy, parameters, verifyingGuard
 
Constructor Summary
MethodInjector(Object componentKey, Class componentImplementation, Parameter[] parameters, ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, String methodName)
          Creates a MethodInjector
 
Method Summary
 Object getComponentInstance(PicoContainer container)
          Retrieve the component instance.
protected  Method getInjectorMethod()
           
protected  Object[] getMemberArguments(PicoContainer container, Method method)
           
 String toString()
           
 void verify(PicoContainer container)
          Verify that all dependencies for this adapter can be satisifed.
 
Methods inherited from class org.picocontainer.injectors.SingleMemberInjector
getMemberArguments, lookupParameterNames
 
Methods inherited from class org.picocontainer.injectors.AbstractInjector
accept, caughtIllegalAccessException, caughtIllegalAccessException, caughtInstantiationException, caughtInvocationTargetException, createDefaultParameters, dispose, hasLifecycle, newInstance, start, stop
 
Methods inherited from class org.picocontainer.adapters.AbstractAdapter
changeMonitor, checkTypeCompatibility, currentMonitor, findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MethodInjector

public MethodInjector(Object componentKey,
                      Class componentImplementation,
                      Parameter[] parameters,
                      ComponentMonitor monitor,
                      LifecycleStrategy lifecycleStrategy,
                      String methodName)
               throws AbstractInjector.NotConcreteRegistrationException
Creates a MethodInjector

Parameters:
componentKey - the search key for this implementation
componentImplementation - the concrete implementation
parameters - the parameters to use for the initialization
monitor - the component monitor used by this addAdapter
lifecycleStrategy - the component lifecycle strategy used by this addAdapter
Throws:
AbstractInjector.NotConcreteRegistrationException - if the implementation is not a concrete class.
NullPointerException - if one of the parameters is null
Method Detail

getInjectorMethod

protected Method getInjectorMethod()

getComponentInstance

public Object getComponentInstance(PicoContainer container)
                            throws PicoCompositionException
Description copied from interface: ComponentAdapter
Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example, Cached will always return the same instance.

Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
Returns:
the component instance.
Throws:
PicoCompositionException - if the component could not be instantiated.

getMemberArguments

protected Object[] getMemberArguments(PicoContainer container,
                                      Method method)

verify

public void verify(PicoContainer container)
            throws PicoCompositionException
Description copied from interface: ComponentAdapter
Verify that all dependencies for this adapter can be satisifed. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependnecies.

Specified by:
verify in interface ComponentAdapter
Specified by:
verify in class AbstractInjector
Parameters:
container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
Throws:
PicoCompositionException - if one or more dependencies cannot be resolved.

toString

public String toString()
Overrides:
toString in class AbstractAdapter
Returns:
Returns the ComponentAdapter's class name and the component's key.
See Also:
Object.toString()


Copyright © 2003-2007 Codehaus. All Rights Reserved.