Package org.picocontainer.injectors
Class SingleMemberInjector<T>
- java.lang.Object
-
- org.picocontainer.adapters.AbstractAdapter<T>
-
- org.picocontainer.injectors.AbstractInjector<T>
-
- org.picocontainer.injectors.SingleMemberInjector<T>
-
- All Implemented Interfaces:
java.io.Serializable
,ComponentAdapter<T>
,ComponentMonitorStrategy
,Injector<T>
- Direct Known Subclasses:
ConstructorInjector
,MethodInjector
public abstract class SingleMemberInjector<T> extends AbstractInjector<T>
Injection will happen in a single member function on the component.- Author:
- Paul Hammant
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
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
parameters, verifyingGuard
-
-
Constructor Summary
Constructors Constructor Description SingleMemberInjector(java.lang.Object componentKey, java.lang.Class componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
boxParameters(java.lang.reflect.Type[] parameterTypes)
protected java.lang.annotation.Annotation[]
getBindings(java.lang.annotation.Annotation[][] annotationss)
protected java.lang.Object[]
getMemberArguments(PicoContainer container, java.lang.reflect.AccessibleObject member, java.lang.reflect.Type[] parameterTypes, java.lang.annotation.Annotation[] bindings)
protected java.lang.Object
getParameter(PicoContainer container, java.lang.reflect.AccessibleObject member, int i, java.lang.reflect.Type parameterType, java.lang.annotation.Annotation binding, Parameter currentParameter, ComponentAdapter<?> injecteeAdapter)
protected com.thoughtworks.paranamer.Paranamer
getParanamer()
protected boolean
isNullParamAllowed(java.lang.reflect.AccessibleObject member, int i)
Checks to see if a null parameter is allowed in the given constructor/field/method.protected void
nullCheck(java.lang.reflect.AccessibleObject member, int i, ParameterNameBinding expectedNameBinding, java.lang.Object result)
-
Methods inherited from class org.picocontainer.injectors.AbstractInjector
accept, box, caughtIllegalAccessException, caughtIllegalAccessException, caughtInstantiationException, caughtInvocationTargetException, createDefaultParameters, decorateComponentInstance, getComponentInstance, getComponentInstance, getDescriptor, newInstance, useNames, verify
-
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
-
SingleMemberInjector
public SingleMemberInjector(java.lang.Object componentKey, java.lang.Class componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames)
-
-
Method Detail
-
getParanamer
protected com.thoughtworks.paranamer.Paranamer getParanamer()
-
getMemberArguments
protected java.lang.Object[] getMemberArguments(PicoContainer container, java.lang.reflect.AccessibleObject member, java.lang.reflect.Type[] parameterTypes, java.lang.annotation.Annotation[] bindings)
-
boxParameters
protected void boxParameters(java.lang.reflect.Type[] parameterTypes)
-
getParameter
protected java.lang.Object getParameter(PicoContainer container, java.lang.reflect.AccessibleObject member, int i, java.lang.reflect.Type parameterType, java.lang.annotation.Annotation binding, Parameter currentParameter, ComponentAdapter<?> injecteeAdapter)
-
nullCheck
protected void nullCheck(java.lang.reflect.AccessibleObject member, int i, ParameterNameBinding expectedNameBinding, java.lang.Object result)
-
isNullParamAllowed
protected boolean isNullParamAllowed(java.lang.reflect.AccessibleObject member, int i)
Checks to see if a null parameter is allowed in the given constructor/field/method. The default version allows null if the target object is not a primitive type.- Parameters:
member
- constructor method or fieldi
- parameter #.- Returns:
- true if the null parameter might be allowed.
-
getBindings
protected java.lang.annotation.Annotation[] getBindings(java.lang.annotation.Annotation[][] annotationss)
-
-