/**
  * Create a {@link SetterInjector}.
  *
  * @param monitor
  * @param lifecycleStrategy
  * @param componentProperties
  * @param componentKey The component's key
  * @param componentImplementation The class of the bean.
  * @param parameters Any parameters for the setters. If null the adapter solves the dependencies
  *     for all setters internally. Otherwise the number parameters must match the number of the
  *     setter.
  * @return Returns a new {@link SetterInjector}.
  * @throws org.picocontainer.PicoCompositionException if dependencies cannot be solved or if the
  *     implementation is an interface or an abstract class.
  */
 public <T> ComponentAdapter<T> createComponentAdapter(
     ComponentMonitor monitor,
     LifecycleStrategy lifecycleStrategy,
     Properties componentProperties,
     Object componentKey,
     Class<T> componentImplementation,
     Parameter... parameters)
     throws PicoCompositionException {
   return wrapLifeCycle(
       monitor.newInjector(
           new AnnotatedMethodInjector(
               componentKey,
               componentImplementation,
               parameters,
               monitor,
               injectionAnnotation,
               useNames)),
       lifecycleStrategy);
 }
 public Injector newInjector(Injector injector) {
   return delegate.newInjector(injector);
 }