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 * Original code by                                                          *
009 *****************************************************************************/
010package org.picocontainer.injectors;
011
012import org.picocontainer.InjectionFactory;
013
014import java.lang.annotation.Annotation;
015
016public class Injectors {
017
018    public static InjectionFactory adaptiveDI() {
019        return new AdaptingInjection();
020    }
021
022    public static InjectionFactory SDI() {
023        return new SetterInjection();
024    }
025
026    public static InjectionFactory CDI() {
027        return new ConstructorInjection();
028    }
029
030    public static InjectionFactory namedMethod() {
031        return new NamedMethodInjection();
032    }
033
034    public static InjectionFactory namedField() {
035        return new NamedFieldInjection();
036    }
037
038    public static InjectionFactory annotatedMethodDI(Class<? extends Annotation> injectionAnnotation) {
039        return new AnnotatedMethodInjection(injectionAnnotation, false);
040    }
041
042    public static InjectionFactory annotatedMethodDI() {
043        return new AnnotatedMethodInjection();
044    }
045
046    public static InjectionFactory annotatedFieldDI(Class<? extends Annotation> injectionAnnotation) {
047        return new AnnotatedFieldInjection(injectionAnnotation);
048    }
049
050    public static InjectionFactory annotatedFieldDI() {
051        return new AnnotatedFieldInjection();
052    }
053
054    public static InjectionFactory typedFieldDI() {
055        return new TypedFieldInjection();
056    }
057
058}