Class MethodInjector<T>

All Implemented Interfaces:
Serializable, ComponentAdapter<T>, ComponentMonitorStrategy, Injector<T>
Direct Known Subclasses:
MethodInjector.ByMethodName, MethodInjector.ByReflectionMethod

public abstract class MethodInjector<T> extends SingleMemberInjector<T>
Injection will happen through a single method for the component. Most likely it is a method called 'inject', though that can be overridden.
Author:
Paul Hammant, Aslak Hellesøy, Jon Tirsén, Zohar Melamed, Jörg Schaible, Mauro Talevi
See Also:
  • Constructor Details

  • Method Details

    • getInjectorMethod

      protected abstract Method getInjectorMethod()
    • getComponentInstance

      public T getComponentInstance(PicoContainer container, Type into) throws PicoCompositionException
      Description copied from interface: ComponentAdapter
      Retrieve the component instance. This method will usually create a new instance each time it is called, but that is not required. For example, Cached will always return the same instance.
      Specified by:
      getComponentInstance in interface ComponentAdapter<T>
      Specified by:
      getComponentInstance in class AbstractInjector<T>
      Parameters:
      container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
      into - the class that is about to be injected into. Use ComponentAdapter.NOTHING.class if this is not important to you.
      Returns:
      the component instance.
      Throws:
      PicoCompositionException - if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.
    • getMemberArguments

      protected Object[] getMemberArguments(PicoContainer container, Method method)
    • decorateComponentInstance

      public Object decorateComponentInstance(PicoContainer container, Type into, T instance)
      Description copied from interface: Injector
      A preexiting component instance can be injected into after instantiation
      Specified by:
      decorateComponentInstance in interface Injector<T>
      Overrides:
      decorateComponentInstance in class AbstractInjector<T>
      Parameters:
      container - the container that can provide injectable dependencies
      into -
      instance - the instance to
      Returns:
    • verify

      public void verify(PicoContainer container) throws PicoCompositionException
      Description copied from interface: ComponentAdapter
      Verify that all dependencies for this adapter can be satisfied. Normally, the adapter should verify this by checking that the associated PicoContainer contains all the needed dependencies.
      Specified by:
      verify in interface ComponentAdapter<T>
      Overrides:
      verify in class AbstractInjector<T>
      Parameters:
      container - the PicoContainer, that is used to resolve any possible dependencies of the instance.
      Throws:
      PicoCompositionException - if one or more dependencies cannot be resolved.
    • isNullParamAllowed

      protected boolean isNullParamAllowed(AccessibleObject member, int i)
      Description copied from class: SingleMemberInjector
      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.
      Overrides:
      isNullParamAllowed in class SingleMemberInjector<T>
      Parameters:
      member - constructor method or field
      i - parameter #.
      Returns:
      true if the null parameter might be allowed.