cvs: php4 /ext/java reflect.java
| From: | Sam Ruby | Date: | Fri, 27 Oct 2000 10:27:19 +0000 |
| Subject: | cvs: php4 /ext/java reflect.java | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-2293@lists.php.net to get a copy of this message | ||
rubys Fri Oct 27 03:27:19 2000 EDT
Modified files:
/php4/ext/java reflect.java
Log:
Allow strings to be passed to methods expecting primitive types.
Index: php4/ext/java/reflect.java
diff -u php4/ext/java/reflect.java:1.18 php4/ext/java/reflect.java:1.19
--- php4/ext/java/reflect.java:1.18 Sun Jul 23 22:40:59 2000
+++ php4/ext/java/reflect.java Fri Oct 27 03:27:18 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: reflect.java,v 1.18 2000/07/24 05:40:59 david Exp $ */
+/* $Id: reflect.java,v 1.19 2000/10/27 10:27:18 rubys Exp $ */
package net.php;
@@ -208,7 +208,7 @@
if (c== Character.TYPE || ((String)args[i]).length()>0)
weight+=((String)args[i]).length();
else
- weight+=9999;
+ weight+=64;
} else {
weight+=9999;
}
@@ -237,7 +237,21 @@
Object result[] = args;
for (int i=0; i<args.length; i++) {
if (args[i] instanceof byte[] && !parms[i].isArray()) {
- result[i] = new String((byte[])args[i]);
+ Class c = parms[i];
+ String s = new String((byte[])args[i]);
+ result[i] = s;
+ try {
+ if (c == Boolean.TYPE) result[i]=new Boolean(s);
+ if (c == Byte.TYPE) result[i]=new Byte(s);
+ if (c == Short.TYPE) result[i]=new Short(s);
+ if (c == Integer.TYPE) result[i]=new Integer(s);
+ if (c == Float.TYPE) result[i]=new Float(s);
+ if (c == Long.TYPE) result[i]=new Long(s);
+ if (c == Character.TYPE && s.length()>0)
+ result[i]=new Character(s.charAt(0));
+ } catch (NumberFormatException n) {
+ // oh well, we tried!
+ }
} else if (args[i] instanceof Number && parms[i].isPrimitive()) {
if (result==args) result=(Object[])result.clone();
Class c = parms[i];