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 }