[picocontainer-scm] [5752] java/2.x/trunk/pico/container/src/java/org/picocontainer: PICO-380: new PicoBuilder 'annotated method injection' capability (needs a test)

paul-yCVjj/[email protected] Wed, 2 Feb 2011 07:16:31 -0600 (CST)
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5752
Author paul
Date 2011-02-02 07:16:31 -0600 (Wed, 02 Feb 2011)

Log Message

PICO-380 : new PicoBuilder 'annotated method injection' capability (needs a test)

Modified Paths

- java/2.x/trunk/pico/container/src/java/org/picocontainer/PicoBuilder.java

- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/Injectors.java

Diff

Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/PicoBuilder.java (5751 => 5752)

--- java/2.x/trunk/pico/container/src/java/org/picocontainer/PicoBuilder.java 2011-02-02 13:12:06 UTC (rev 5751)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/PicoBuilder.java 2011-02-02 13:16:31 UTC (rev 5752)
@@ -24,6 +24,7 @@
import org.picocontainer.monitors.ConsoleComponentMonitor;
import org.picocontainer.monitors.NullComponentMonitor;

+import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
@@ -66,7 +67,7 @@

public PicoBuilder(PicoContainer parentContainer, InjectionFactory injectionType) {
this(parentContainer);
- injectors.add(injectionType);
+ addInjector(injectionType);
}

/**
@@ -245,39 +246,47 @@
}

public PicoBuilder withSetterInjection() {
- injectors.add(SDI());
+ addInjector(SDI());
return this;
}

+ public PicoBuilder withAnnotatedMethodInjection(Class<? extends Annotation> injectionAnnotation) {
+ addInjector(annotatedMethodDI(injectionAnnotation));
+ return this;
+ }
+
public PicoBuilder withAnnotatedMethodInjection() {
- injectors.add(annotatedMethodDI());
+ addInjector(annotatedMethodDI());
return this;
}

+ public PicoBuilder withAnnotatedFieldInjection(Class<? extends Annotation> injectionAnnotation) {
+ addInjector(annotatedFieldDI(injectionAnnotation));
+ return this;
+ }

public PicoBuilder withAnnotatedFieldInjection() {
- injectors.add(annotatedFieldDI());
+ addInjector(annotatedFieldDI());
return this;
}

public PicoBuilder withTypedFieldInjection() {
- injectors.add(typedFieldDI());
+ addInjector(typedFieldDI());
return this;
}

-
public PicoBuilder withConstructorInjection() {
- injectors.add(CDI());
+ addInjector(CDI());
return this;
}

public PicoBuilder withNamedMethodInjection() {
- injectors.add(namedMethod());
+ addInjector(namedMethod());
return this;
}

public PicoBuilder withNamedFieldInjection() {
- injectors.add(namedField());
+ addInjector(namedField());
return this;
}

@@ -349,7 +358,7 @@
}

public PicoBuilder withMethodInjection() {
- injectors.add(new MethodInjection());
+ addInjector(new MethodInjection());
return this;
}

@@ -357,4 +366,8 @@
addChildToParent = true;
return this;
}
+
+ protected void addInjector(InjectionFactory injectionType) {
+ injectors.add(injectionType);
+ }
}

Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/Injectors.java (5751 => 5752)

--- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/Injectors.java 2011-02-02 13:12:06 UTC (rev 5751)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/Injectors.java 2011-02-02 13:16:31 UTC (rev 5752)
@@ -11,6 +11,8 @@

import org.picocontainer.InjectionFactory;

+import java.lang.annotation.Annotation;
+
public class Injectors {

public static InjectionFactory adaptiveDI() {
@@ -33,10 +35,18 @@
return new NamedFieldInjection();
}

+ public static InjectionFactory annotatedMethodDI(Class<? extends Annotation> injectionAnnotation) {
+ return new AnnotatedMethodInjection(injectionAnnotation, false);
+ }
+
public static InjectionFactory annotatedMethodDI() {
return new AnnotatedMethodInjection();
}

+ public static InjectionFactory annotatedFieldDI(Class<? extends Annotation> injectionAnnotation) {
+ return new AnnotatedFieldInjection(injectionAnnotation);
+ }
+
public static InjectionFactory annotatedFieldDI() {
return new AnnotatedFieldInjection();
}

----------

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email