001 /***************************************************************************** 002 * Copyright (C) PicoContainer Organization. All rights reserved. * 003 * ------------------------------------------------------------------------- * 004 * The software in this package is published under the terms of the BSD * 005 * style license a copy of which has been included with this distribution in * 006 * the LICENSE.txt file. * 007 * * 008 *****************************************************************************/ 009 package org.picocontainer.injectors; 010 011 import org.picocontainer.Parameter; 012 import org.picocontainer.ComponentMonitor; 013 import org.picocontainer.LifecycleStrategy; 014 import org.picocontainer.annotations.Inject; 015 016 /** @author Paul Hammant */ 017 @SuppressWarnings("serial") 018 public class MultiInjector extends CompositeInjector { 019 020 private AnnotatedMethodInjector annotatedMethodInjector; 021 022 public MultiInjector(Object componentKey, 023 Class componentImplementation, 024 Parameter[] parameters, 025 ComponentMonitor componentMonitor, LifecycleStrategy lifecycleStrategy, String setterPrefix, boolean useNames) { 026 super(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, useNames, 027 new ConstructorInjector(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, useNames), 028 new SetterInjector(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, setterPrefix, useNames), 029 new AnnotatedMethodInjector(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, Inject.class, useNames), 030 new AnnotatedFieldInjector(componentKey, componentImplementation, parameters, componentMonitor, lifecycleStrategy, Inject.class, useNames)); 031 032 } 033 034 public String getDescriptor() { 035 return "MultiInjector"; 036 } 037 }