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:
  `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(Object componentKey, Class componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames)`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`boxParameters(Type[] parameterTypes)`
`protected Annotation[]`
`getBindings(Annotation[][] annotationss)`
`protected Object[]`
`getMemberArguments(PicoContainer container, AccessibleObject member, Type[] parameterTypes, Annotation[] bindings)`
`protected Object`
`getParameter(PicoContainer container, AccessibleObject member, int i, Type parameterType, Annotation binding, Parameter currentParameter, ComponentAdapter<?> injecteeAdapter)`
`protected com.thoughtworks.paranamer.Paranamer`
`getParanamer()`
`protected boolean`
`isNullParamAllowed(AccessibleObject member, int i)`
Checks to see if a null parameter is allowed in the given constructor/field/method.
`protected void`
`nullCheck(AccessibleObject member, int i, ParameterNameBinding expectedNameBinding, 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 Details

### SingleMemberInjector

public SingleMemberInjector(Object componentKey, Class componentImplementation, Parameter[] parameters, ComponentMonitor monitor, boolean useNames)

## Method Details

### getParanamer

protected com.thoughtworks.paranamer.Paranamer getParanamer()

### getMemberArguments

protected Object[] getMemberArguments(PicoContainer container, AccessibleObject member, Type[] parameterTypes, Annotation[] bindings)

### boxParameters

protected void boxParameters(Type[] parameterTypes)

### getParameter

protected Object getParameter(PicoContainer container, AccessibleObject member, int i, Type parameterType, Annotation binding, Parameter currentParameter, ComponentAdapter<?> injecteeAdapter)

### nullCheck

protected void nullCheck(AccessibleObject member, int i, ParameterNameBinding expectedNameBinding, Object result)

### isNullParamAllowed

protected boolean isNullParamAllowed(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 field
  `i` - parameter #.
Returns:
  true if the null parameter might be allowed.

### getBindings

protected Annotation[] getBindings(Annotation[][] annotationss)