Package org.picocontainer.injectors

# Class AdaptingInjection

java.lang.Object
org.picocontainer.injectors.AbstractInjectionFactory
org.picocontainer.injectors.AdaptingInjection

All Implemented Interfaces:
  `Serializable`, `ComponentFactory`, `InjectionFactory`

public class AdaptingInjection extends AbstractInjectionFactory
Creates injector instances, depending on the injection characteristics of the component class. It will attempt to create a component adapter with - in order of priority:

1. Annotated field injection: if annotation `Inject` is found for field
2. Annotated method injection: if annotation `Inject` is found for method
3. Setter injection: if
   invalid reference

       Characteristics.SDI

   is found
4. Method injection: if
   invalid reference

       Characteristics.METHOD_INJECTION

   if found
5. Constructor injection (the default, must find
   invalid reference

       Characteristics.CDI

   )

Author:
  Paul Hammant, Mauro Talevi
See Also:
  - `AnnotatedFieldInjection`
  - `AnnotatedMethodInjection`
  - `SetterInjection`
  - `MethodInjection`
  - `ConstructorInjection`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`AdaptingInjection()`

## Method Summary

Modifier and Type
Method
Description
`<T> ComponentAdapter<T>`
`createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters)`
Create a new component adapter based on the specified arguments.

### Methods inherited from class org.picocontainer.injectors.AbstractInjectionFactory

`accept, verify, wrapLifeCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### AdaptingInjection

public AdaptingInjection()

## Method Details

### createComponentAdapter

public <T> ComponentAdapter<T> createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters) throws PicoCompositionException
Description copied from interface: `ComponentFactory`
Create a new component adapter based on the specified arguments.

Parameters:
  `componentMonitor` - the component monitor
  `lifecycleStrategy` - te lifecycle strategy
  `componentProperties` - the component properties
  `componentKey` - the key to be associated with this adapter. This value should be returned from a call to `ComponentAdapter.getComponentKey()` on the created adapter.
  `componentImplementation` - the implementation class to be associated with this adapter. This value should be returned from a call to `ComponentAdapter.getComponentImplementation()` on the created adapter. Should not be null.
  `parameters` - additional parameters to use by the component adapter in constructing component instances. These may be used, for example, to make decisions about the arguments passed into the component constructor. These should be considered hints; they may be ignored by some implementations. May be null, and may be of zero length.
Returns:
  a new component adapter based on the specified arguments. Should not return null.
Throws:
  `PicoCompositionException` - if the creation of the component adapter results in a `PicoCompositionException`.