Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.picocontainer.injectors
Class MethodInjector<T>

    java.lang.Object
      org.picocontainer.adapters.AbstractAdapter<T>
          org.picocontainer.injectors.AbstractInjector<T>
              org.picocontainer.injectors.SingleMemberInjector<T>
                  org.picocontainer.injectors.MethodInjector<T>

All Implemented Interfaces:
  Serializable, ComponentAdapter<T>, ComponentMonitorStrategy, Injector<T>, LifecycleStrategy

Direct Known Subclasses:
  MethodInjector.ByReflectionMethod

    public class MethodInjector<T>

extends SingleMemberInjector<T>

Injection will happen through a single method for the component. Most likely it is a method called 'inject', though that can be overridden.

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

Nested Class Summary
`static class` | `MethodInjector.ByReflectionMethod`

Nested classes/interfaces inherited from class org.picocontainer.injectors.SingleMemberInjector
`SingleMemberInjector.ParameterCannotBeNullException`

Nested classes/interfaces inherited from class org.picocontainer.injectors.AbstractInjector
`AbstractInjector.AmbiguousComponentResolutionException, AbstractInjector.CyclicDependencyException, AbstractInjector.NotConcreteRegistrationException, AbstractInjector.UnsatisfiableDependenciesException`

Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
`ComponentAdapter.NOTHING`

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, boolean useNames)` Creates a MethodInjector

Method Summary
`Object` | `decorateComponentInstance(PicoContainer container, Type into, T instance)` A preexiting component instance can be injected into after instantiation
`T` | `getComponentInstance(PicoContainer container, Type into)` Retrieve the component instance.
`String` | `getDescriptor()` Get a string key descriptor of the component adapter.
`protected Method` | `getInjectorMethod()`
`protected Object[]` | `getMemberArguments(PicoContainer container, Method method)`
`protected boolean` | `isNullParamAllowed(AccessibleObject member, int i)`
`void` | `verify(PicoContainer container)` Verify that all dependencies for this adapter can be satisfied.

Methods inherited from class org.picocontainer.injectors.SingleMemberInjector
`getBindings, getMemberArguments, getParanamer`

Methods inherited from class org.picocontainer.injectors.AbstractInjector
`accept, box, caughtIllegalAccessException, caughtIllegalAccessException, caughtInstantiationException, caughtInvocationTargetException, createDefaultParameters, dispose, getComponentInstance, hasLifecycle, newInstance, start, stop, useNames`

Methods inherited from class org.picocontainer.adapters.AbstractAdapter
`changeMonitor, checkTypeCompatibility, currentMonitor, findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.picocontainer.ComponentAdapter
`findAdapterOfType, getComponentImplementation, getComponentKey, getDelegate`

Constructor Detail

### MethodInjector

    public MethodInjector(Object componentKey,
                          Class componentImplementation,
                          Parameter[] parameters,
                          ComponentMonitor monitor,
                          LifecycleStrategy lifecycleStrategy,
                          String methodName,
                          boolean useNames)
                   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
    `methodName` - the method name
    `useNames` - use argument names when looking up dependencies
  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 T getComponentInstance(PicoContainer container,
                                  Type into)
                           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.

  Specified by:
    `getComponentInstance` in interface `ComponentAdapter<T>`
  Specified by:
    `getComponentInstance` in class `AbstractInjector<T>`
  Parameters:
    `container` - the `PicoContainer`, that is used to resolve any possible dependencies of the instance.
    `into` - the class that is about to be injected into. Use ComponentAdapter.NOTHING.class if this is not important to you.
  Returns:
    the component instance.
  Throws:
    `PicoCompositionException` - if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.

### getMemberArguments

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

### decorateComponentInstance

    public Object decorateComponentInstance(PicoContainer container,
                                            Type into,
                                            T instance)

  Description copied from interface: `Injector`
  A preexiting component instance can be injected into after instantiation

  Specified by:
    `decorateComponentInstance` in interface `Injector<T>`
  Overrides:
    `decorateComponentInstance` in class `AbstractInjector<T>`
  Parameters:
    `container` - the container that can provide injectable dependencies
    `instance` - the instance to
  Returns:

### verify

    public void verify(PicoContainer container)
                throws PicoCompositionException

  Description copied from interface: `ComponentAdapter`
  Verify that all dependencies for this adapter can be satisfied. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependencies.

  Specified by:
    `verify` in interface `ComponentAdapter<T>`
  Overrides:
    `verify` in class `AbstractInjector<T>`
  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.

### getDescriptor

    public String getDescriptor()

  Description copied from interface: `ComponentAdapter`
  Get a string key descriptor of the component adapter.

  Specified by:
    `getDescriptor` in interface `ComponentAdapter<T>`
  Overrides:
    `getDescriptor` in class `AbstractInjector<T>`
  Returns:

### isNullParamAllowed

    protected boolean isNullParamAllowed(AccessibleObject member,
                                         int i)

  Overrides:
    `isNullParamAllowed` in class `SingleMemberInjector<T>`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2009 Codehaus. All Rights Reserved.