001 package org.picocontainer.injectors; 002 003 import org.picocontainer.ComponentAdapter; 004 import org.picocontainer.ComponentMonitor; 005 import org.picocontainer.LifecycleStrategy; 006 import org.picocontainer.Parameter; 007 import org.picocontainer.PicoCompositionException; 008 009 import java.util.Properties; 010 011 public class NamedMethodInjection extends AbstractInjectionFactory { 012 013 private final String prefix; 014 private final boolean optional; 015 016 public NamedMethodInjection(String prefix) { 017 this(prefix, true); 018 } 019 020 public NamedMethodInjection() { 021 this("set"); 022 } 023 024 public NamedMethodInjection(boolean optional) { 025 this("set", optional); 026 } 027 028 public NamedMethodInjection(String prefix, boolean optional) { 029 this.prefix = prefix; 030 this.optional = optional; 031 } 032 033 public <T> ComponentAdapter<T> createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters) throws PicoCompositionException { 034 return wrapLifeCycle(monitor.newInjector(new NamedMethodInjector(componentKey, componentImplementation, parameters, monitor, prefix, optional)), lifecycleStrategy); 035 } 036 }