org.picocontainer.injectors
Class AnnotatedFieldInjector<T>

java.lang.Object
  extended by org.picocontainer.adapters.AbstractAdapter<T>
      extended by org.picocontainer.injectors.AbstractInjector<T>
          extended by org.picocontainer.injectors.IterativeInjector<T>
              extended by org.picocontainer.injectors.AbstractFieldInjector<T>
                  extended by org.picocontainer.injectors.AnnotatedFieldInjector<T>
All Implemented Interfaces:
Serializable, ComponentAdapter<T>, ComponentMonitorStrategy, Injector<T>

public class AnnotatedFieldInjector<T>
extends AbstractFieldInjector<T>

Injection happens after instantiation, and through fields marked as injection points via an Annotation. The default annotation of org.picocontainer.annotations.@Inject can be overridden.

See Also:
Serialized Form

Nested Class Summary
 
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.IterativeInjector
bindings, injectionMembers, injectionTypes
 
Fields inherited from class org.picocontainer.injectors.AbstractInjector
parameters, verifyingGuard
 
Constructor Summary
AnnotatedFieldInjector(Object key, Class<?> impl, Parameter[] parameters, ComponentMonitor componentMonitor, Class<? extends Annotation> injectionAnnotation, boolean useNames)
           
 
Method Summary
 String getDescriptor()
          Get a string key descriptor of the component adapter for use in toString()
protected  void initializeInjectionMembersAndTypeLists()
           
protected  Object injectIntoMember(AccessibleObject member, Object componentInstance, Object toInject)
           
protected  boolean isAnnotatedForInjection(Field field)
           
protected  NameBinding makeParameterNameImpl(AccessibleObject member)
           
protected  Object memberInvocationReturn(Object lastReturn, AccessibleObject member, Object instance)
           
 
Methods inherited from class org.picocontainer.injectors.AbstractFieldInjector
unsatisfiedDependencies
 
Methods inherited from class org.picocontainer.injectors.IterativeInjector
crudeMethodSignature, decorateComponentInstance, getComponentInstance, getConstructor, getName, isInjectorMethod, verify
 
Methods inherited from class org.picocontainer.injectors.AbstractInjector
accept, box, caughtIllegalAccessException, caughtIllegalAccessException, caughtInstantiationException, caughtInvocationTargetException, createDefaultParameters, getComponentInstance, newInstance, 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

AnnotatedFieldInjector

public AnnotatedFieldInjector(Object key,
                              Class<?> impl,
                              Parameter[] parameters,
                              ComponentMonitor componentMonitor,
                              Class<? extends Annotation> injectionAnnotation,
                              boolean useNames)
Method Detail

initializeInjectionMembersAndTypeLists

protected void initializeInjectionMembersAndTypeLists()
Overrides:
initializeInjectionMembersAndTypeLists in class IterativeInjector<T>

isAnnotatedForInjection

protected boolean isAnnotatedForInjection(Field field)

injectIntoMember

protected Object injectIntoMember(AccessibleObject member,
                                  Object componentInstance,
                                  Object toInject)
                           throws IllegalAccessException,
                                  InvocationTargetException
Specified by:
injectIntoMember in class IterativeInjector<T>
Throws:
IllegalAccessException
InvocationTargetException

getDescriptor

public String getDescriptor()
Description copied from interface: ComponentAdapter
Get a string key descriptor of the component adapter for use in toString()

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

makeParameterNameImpl

protected NameBinding makeParameterNameImpl(AccessibleObject member)
Overrides:
makeParameterNameImpl in class IterativeInjector<T>

memberInvocationReturn

protected Object memberInvocationReturn(Object lastReturn,
                                        AccessibleObject member,
                                        Object instance)
Specified by:
memberInvocationReturn in class IterativeInjector<T>


Copyright © 2003-2012 Codehaus. All Rights Reserved.