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     *****************************************************************************/
010    package org.picocontainer.injectors;
011    
012    import org.picocontainer.InjectionFactory;
013    
014    import java.lang.annotation.Annotation;
015    
016    public 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    }