openamf/src/java/org/openamf/invoker RankedMethod.java,1.3,1.4

[email protected]
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
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.