public <T> ComponentAdapter<T> createComponentAdapter(ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters) throws PicoCompositionException {
boolean useNames = AbstractBehaviorFactory.arePropertiesPresent(componentProperties, Characteristics.USE_NAMES, true);
if (injectionMethod.getDeclaringClass().isAssignableFrom(componentImplementation)) {
return componentMonitor.newInjector(new MethodInjector.ByReflectionMethod(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, injectionMethod, useNames));
} else {
throw new PicoCompositionException("method [" + injectionMethod + "] not on impl " + componentImplementation.getName());
}
}