[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.