openamf/src/java/org/openamf/invoker RankedMethod.java,1.3,1.4
| Newsgroups | gmane.comp.java.openamf.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/openamf/openamf/src/java/org/openamf/invoker
In directory sc8-pr-cvs1:/tmp/cvs-serv11610/src/java/org/openamf/invoker
Modified Files:
RankedMethod.java
Log Message:
now all parameters are decoded with ASTranslator
Index: RankedMethod.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/invoker/RankedMethod.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** RankedMethod.java 3 May 2003 22:45:59 -0000 1.3
--- RankedMethod.java 5 May 2003 20:36:50 -0000 1.4
***************
*** 67,71 ****
rank += RankedMethod.NAME_CASE_MATCHES;
}
!
Class[] parameterTypes = method.getParameterTypes();
if (parameterTypes.length == parameters.size()) {
--- 67,71 ----
rank += RankedMethod.NAME_CASE_MATCHES;
}
!
Class[] parameterTypes = method.getParameterTypes();
if (parameterTypes.length == parameters.size()) {
***************
*** 101,128 ****
100 - NAME_MATCHES - NAME_CASE_MATCHES - PARAM_COUNT_MATCHES;
! double paramTypeMatchValue = allParamTypesMatch / parameters.size();
for (int i = 0; i < parameterTypes.length; i++) {
Class parameterType = parameterTypes[i];
Object parameter = parameters.get(i);
! log.debug("parameter class: " + parameter.getClass().getName());
log.debug("expected class: " + parameterType.getName());
! if (parameterType.isInstance(parameter)) {
log.debug("types match");
! rank += paramTypeMatchValue;
! decodedParameters.add(parameter);
! } else {
! log.debug("types don't match");
! Object decodedObject =
! decodeParameter(parameter, parameterType);
! if (parameterType.isInstance(decodedObject)) {
! log.debug("parameter decoded");
! rank += paramTypeMatchValue / 2;
! decodedParameters.add(decodedObject);
} else {
! log.debug("parameter couldn't be decoded");
! invokable = false;
! break;
}
}
}
--- 101,132 ----
100 - NAME_MATCHES - NAME_CASE_MATCHES - PARAM_COUNT_MATCHES;
! double paramTypeMatchValue = 0;
! if (parameterTypes.length == 0) {
! rank += allParamTypesMatch;
! } else {
! paramTypeMatchValue = allParamTypesMatch / parameterTypes.length;
! }
for (int i = 0; i < parameterTypes.length; i++) {
Class parameterType = parameterTypes[i];
Object parameter = parameters.get(i);
!
! boolean origTypesMatch = parameterType.isInstance(parameter);
!
! Object decodedObject = decodeParameter(parameter, parameterType);
! log.debug("parameter class: " + decodedObject.getClass().getName());
log.debug("expected class: " + parameterType.getName());
! if (parameterType.isInstance(decodedObject)) {
log.debug("types match");
! if (origTypesMatch) {
! rank += paramTypeMatchValue;
} else {
! rank += paramTypeMatchValue / 2;
}
+ decodedParameters.add(decodedObject);
+ } else {
+ log.debug("parameter couldn't be decoded");
+ invokable = false;
+ break;
}
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf