[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