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 *****************************************************************************/ 009package org.picocontainer.injectors; 010 011import org.picocontainer.Parameter; 012import org.picocontainer.ComponentMonitor; 013import org.picocontainer.annotations.Inject; 014 015/** @author Paul Hammant */ 016@SuppressWarnings("serial") 017public class MultiInjector extends CompositeInjector { 018 019 public MultiInjector(Object componentKey, 020 Class componentImplementation, 021 Parameter[] parameters, 022 ComponentMonitor componentMonitor, String setterPrefix, boolean useNames) { 023 super(componentKey, componentImplementation, parameters, componentMonitor, useNames, 024 componentMonitor.newInjector(new ConstructorInjector(componentKey, componentImplementation, parameters, componentMonitor, useNames)), 025 componentMonitor.newInjector(new SetterInjector(componentKey, componentImplementation, parameters, componentMonitor, setterPrefix, "", false, useNames)), 026 componentMonitor.newInjector(new AnnotatedMethodInjector(componentKey, componentImplementation, parameters, componentMonitor, Inject.class, useNames)), 027 componentMonitor.newInjector(new AnnotatedFieldInjector(componentKey, componentImplementation, parameters, componentMonitor, Inject.class, useNames))); 028 029 } 030 031 public String getDescriptor() { 032 return "MultiInjector"; 033 } 034}