org.picocontainer.injectors
Class AdaptingInjection

java.lang.Object
  extended by org.picocontainer.injectors.AbstractInjectionFactory
      extended by 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 Characteristics.SDI is found
  4. Method injection: if Characteristics.METHOD_INJECTION if found
  5. Constructor injection (the default, must find Characteristics.CDI)

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

Constructor Summary
AdaptingInjection()
           
 
Method Summary
<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 Detail

AdaptingInjection

public AdaptingInjection()
Method Detail

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.


Copyright © 2003-2010 Codehaus. All Rights Reserved.