Guilhem Lavaux wrote:
Hi,
I think I will have to begin the split of the serialization patch at a time or another. I'm beginning with this really simple patch for TypeSignature.
It is needed so class can resolved by name using a specific class loader and not using a default class loader as it was the case with the previous API.
Looks fine to me. Could you add some docs for getClassForEncoding(String, boolean, ClassLoader):
/** * This function is the inverse of <code>getEncodingOfClass</code>. This * accepts both object and descriptor formats, but must know which style * of string is being passed in (usually, descriptor should be true).In * descriptor format, "I" is treated as int.class, in object format, it * is treated as a class named I in the unnamed package. It also * accepts a <code>ClassLoader</code>, which is used to load the class. * * @param type_code the class name to decode * @param descriptor if the string is in descriptor format * @param loader the class loader used to load the class * @return the corresponding Class object * @throws ClassNotFoundException if the class cannot be located * @see #getEncodingOfClass(Class, boolean) * @see #getClassForEncoding(String, boolean) */
cheers, dalibor topic
2003-11-26 Guilhem Lavaux <[EMAIL PROTECTED]>, Helmer Kraemer <[EMAIL PROTECTED]>
* gnu/java/lang/reflect/TypeSignature.java
(getClassForEncoding) Splitted the method so we can specify an explicit boot loader.
------------------------------------------------------------------------
Index: gnu/java/lang/reflect/TypeSignature.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/lang/reflect/TypeSignature.java,v
retrieving revision 1.10
diff -u -r1.10 TypeSignature.java
--- gnu/java/lang/reflect/TypeSignature.java 22 Mar 2002 21:25:20 -0000 1.10
+++ gnu/java/lang/reflect/TypeSignature.java 16 Nov 2003 16:27:05 -0000
@@ -150,6 +150,12 @@
public static Class getClassForEncoding(String type_code, boolean descriptor)
throws ClassNotFoundException
{
+ return getClassForEncoding(type_code, descriptor, null);
+ }
+
+ public static Class getClassForEncoding(String type_code, boolean descriptor, ClassLoader loader)
+ throws ClassNotFoundException
+ {
if (descriptor)
{
switch (type_code.charAt(0))
@@ -181,7 +187,7 @@
case '[':
}
}
- return Class.forName(type_code.replace('/', '.'));
+ return Class.forName(type_code.replace('/', '.'), true, loader);
}
/**
------------------------------------------------------------------------
_______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath
_______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath