[picocontainer-scm] [5599] java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors: start of named method injection
paul-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5599
Author paul
Date 2010-02-12 13:46:20 -0600 (Fri, 12 Feb 2010)
Log Message
start of named method injection
Modified Paths
- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/IterativeInjector.java
- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/SetterInjector.java
- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/AdaptingInjectionTestCase.java
Diff
Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/IterativeInjector.java (5598 => 5599)
--- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/IterativeInjector.java 2010-02-09 12:57:02 UTC (rev 5598)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/IterativeInjector.java 2010-02-12 19:46:20 UTC (rev 5599)
@@ -36,6 +36,7 @@
private transient ThreadLocalCyclicDependencyGuard instantiationGuard;
protected transient List<AccessibleObject> injectionMembers;
protected transient Type[] injectionTypes;
+ protected transient String[] names;
protected transient Annotation[] bindings;
private transient Paranamer paranamer;
@@ -112,7 +113,8 @@
private boolean matchParameter(PicoContainer container, List<Object> matchingParameterList, Parameter parameter) {
for (int j = 0; j < injectionTypes.length; j++) {
- if (matchingParameterList.get(j) == null
+ Object o = matchingParameterList.get(j);
+ if (o == null
&& parameter.resolve(container, this, null, injectionTypes[j],
makeParameterNameImpl(injectionMembers.get(j)),
useNames(), bindings[j]).isResolved()) {
@@ -247,6 +249,7 @@
protected void initializeInjectionMembersAndTypeLists() {
injectionMembers = new ArrayList<AccessibleObject>();
List<Annotation> bingingIds = new ArrayList<Annotation>();
+ final List<String> nameList = new ArrayList<String>();
final List<Type> typeList = new ArrayList<Type>();
final Method[] methods = getMethods();
for (final Method method : methods) {
@@ -258,15 +261,21 @@
boolean isInjector = isInjectorMethod(method);
if (isInjector) {
injectionMembers.add(method);
+ nameList.add(getName(method));
typeList.add(box(parameterTypes[0]));
bingingIds.add(getBindings(method, 0));
}
}
}
injectionTypes = typeList.toArray(new Type[0]);
+ names = nameList.toArray(new String[0]);
bindings = bingingIds.toArray(new Annotation[0]);
}
+ protected String getName(Method method) {
+ return null;
+ }
+
private void fixGenericParameterTypes(Method method, Type[] parameterTypes) {
for (int i = 0; i < parameterTypes.length; i++) {
Type parameterType = parameterTypes[i];
Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/SetterInjector.java (5598 => 5599)
--- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/SetterInjector.java 2010-02-09 12:57:02 UTC (rev 5598)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/SetterInjector.java 2010-02-12 19:46:20 UTC (rev 5599)
@@ -11,7 +11,6 @@
import org.picocontainer.ComponentMonitor;
import org.picocontainer.Parameter;
-import org.picocontainer.LifecycleStrategy;
import org.picocontainer.behaviors.PropertyApplicator;
import org.picocontainer.behaviors.Cached;
@@ -38,7 +37,7 @@
@SuppressWarnings("serial")
public class SetterInjector<T> extends IterativeInjector<T> {
- private final String setterMethodPrefix;
+ protected final String prefix;
/**
* Constructs a SetterInjector
@@ -47,7 +46,7 @@
* @param componentImplementation the concrete implementation
* @param parameters the parameters to use for the initialization
* @param monitor the component monitor used by this addAdapter
- * @param setterMethodPrefix
+ * @param prefix the prefix to use (e.g. 'set')
* @throws org.picocontainer.injectors.AbstractInjector.NotConcreteRegistrationException
* if the implementation is not a concrete class.
* @throws NullPointerException if one of the parameters is <code>null</code>
@@ -56,9 +55,9 @@
final Class componentImplementation,
Parameter[] parameters,
ComponentMonitor monitor,
- String setterMethodPrefix, boolean useNames) throws NotConcreteRegistrationException {
+ String prefix, boolean useNames) throws NotConcreteRegistrationException {
super(componentKey, componentImplementation, parameters, monitor, useNames);
- this.setterMethodPrefix = setterMethodPrefix;
+ this.prefix = prefix;
}
protected Object memberInvocationReturn(Object lastReturn, AccessibleObject member, Object instance) {
@@ -76,7 +75,7 @@
}
protected String getInjectorPrefix() {
- return setterMethodPrefix;
+ return prefix;
}
public String getDescriptor() {
Modified: java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/AdaptingInjectionTestCase.java (5598 => 5599)
--- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/AdaptingInjectionTestCase.java 2010-02-09 12:57:02 UTC (rev 5598)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/AdaptingInjectionTestCase.java 2010-02-12 19:46:20 UTC (rev 5599)
@@ -174,7 +174,7 @@
" <componentImplementation>org.picocontainer.injectors.AnnotatedMethodInjectorTestCase$AnnotatedBurp</componentImplementation>\n" +
" <componentMonitor class=CCM/>\n" +
" <useNames>false</useNames>\n" +
- " <setterMethodPrefix></setterMethodPrefix>\n" +
+ " <prefix></prefix>\n" +
" <injectionAnnotation>org.picocontainer.annotations.Inject</injectionAnnotation>\n" +
"</Method-Injection>", foo);
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email