openamf/src/java/org/openamf/invoker RankedMethod.java,1.9,1.10

[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-serv7601/src/java/org/openamf/invoker

Modified Files:
	RankedMethod.java 
Log Message:
1) added support for java.sql.Dates
2) removed some debug messages

Index: RankedMethod.java
===================================================================
RCS file: /cvsroot/openamf/openamf/src/java/org/openamf/invoker/RankedMethod.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** RankedMethod.java	28 May 2003 19:21:12 -0000	1.9
--- RankedMethod.java	6 Jun 2003 02:24:30 -0000	1.10
***************
*** 54,63 ****
  	private void process(String requestedMethodName, List parameters) {
  
- 		log.debug("comparing to methodName: " + method.getName());
- 
  		double rank = 0;
  		ArrayList decodedParameters = null;
  
  		if (method.getName().equalsIgnoreCase(requestedMethodName)) {
  			log.debug("NAME_MATCHES");
  			rank = RankedMethod.NAME_MATCHES;
--- 54,62 ----
  	private void process(String requestedMethodName, List parameters) {
  
  		double rank = 0;
  		ArrayList decodedParameters = null;
  
  		if (method.getName().equalsIgnoreCase(requestedMethodName)) {
+ 			log.debug("comparing to methodName: " + method.getName());
  			log.debug("NAME_MATCHES");
  			rank = RankedMethod.NAME_MATCHES;
***************
*** 111,119 ****
  			Class parameterType = parameterTypes[i];
  			Object parameter = parameters.get(i);
! 			
  			boolean origTypesMatch = typesMatch(parameterType, parameter);
  
  			Object decodedObject = decodeParameter(parameter, parameterType);
! 			if (decodedObject != null && typesMatch(parameterType, decodedObject)) {
  				log.debug("types match");
  				if (origTypesMatch) {
--- 110,119 ----
  			Class parameterType = parameterTypes[i];
  			Object parameter = parameters.get(i);
! 
  			boolean origTypesMatch = typesMatch(parameterType, parameter);
  
  			Object decodedObject = decodeParameter(parameter, parameterType);
! 			if (decodedObject != null
! 				&& typesMatch(parameterType, decodedObject)) {
  				log.debug("types match");
  				if (origTypesMatch) {
***************
*** 137,166 ****
  		return rank;
  	}
! 	
  	private boolean typesMatch(Class parameterType, Object parameter) {
! 		
! 		log.debug("expected class: " + parameterType.getName());
! 		log.debug("parameter class: " + parameter.getClass().getName());
! 		
  		boolean typesMatch = parameterType.isInstance(parameter);
! 		
  		if (!typesMatch) {
! 			if (parameterType.equals(Boolean.TYPE) && parameter instanceof Boolean) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Byte.TYPE) && parameter instanceof Byte) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Short.TYPE) && parameter instanceof Short) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Integer.TYPE) && parameter instanceof Integer) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Long.TYPE) && parameter instanceof Long) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Float.TYPE) && parameter instanceof Float) {
  				typesMatch = true;
! 			} else if (parameterType.equals(Double.TYPE) && parameter instanceof Double) {
  				typesMatch = true;
  			}
  		}
! 		
  		return typesMatch;
  	}
--- 137,177 ----
  		return rank;
  	}
! 
  	private boolean typesMatch(Class parameterType, Object parameter) {
! 
! 		//log.debug("expected class: " + parameterType.getName());
! 		//log.debug("parameter class: " + parameter.getClass().getName());
! 
  		boolean typesMatch = parameterType.isInstance(parameter);
! 
  		if (!typesMatch) {
! 			if (parameterType.equals(Boolean.TYPE)
! 				&& parameter instanceof Boolean) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Byte.TYPE) && parameter instanceof Byte) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Short.TYPE)
! 					&& parameter instanceof Short) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Integer.TYPE)
! 					&& parameter instanceof Integer) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Long.TYPE) && parameter instanceof Long) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Float.TYPE)
! 					&& parameter instanceof Float) {
  				typesMatch = true;
! 			} else if (
! 				parameterType.equals(Double.TYPE)
! 					&& parameter instanceof Double) {
  				typesMatch = true;
  			}
  		}
! 
  		return typesMatch;
  	}
***************
*** 168,171 ****
--- 179,190 ----
  	private Object decodeParameter(Object parameter, Class parameterType) {
  
+ 		if (parameterType.equals(java.sql.Date.class)
+ 			&& parameter instanceof java.util.Date) {
+ 				
+ 			java.util.Date date = (java.util.Date) parameter;
+ 			java.sql.Date sqlDate = new java.sql.Date(date.getTime());
+ 			return sqlDate;
+ 		}
+ 
  		boolean setType = false;
  
***************
*** 196,200 ****
  		int compareTo = 0;
  		RankedMethod rankedMethod = (RankedMethod) o;
! 		
  		if (getRank() > rankedMethod.getRank()) {
  			compareTo = -1;
--- 215,219 ----
  		int compareTo = 0;
  		RankedMethod rankedMethod = (RankedMethod) o;
! 
  		if (getRank() > rankedMethod.getRank()) {
  			compareTo = -1;




-------------------------------------------------------
This SF.net email is sponsored by:  Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
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.