diff options
-rw-r--r-- | libjava/ChangeLog | 6 | ||||
-rw-r--r-- | libjava/gnu/java/lang/reflect/TypeSignature.java | 25 |
2 files changed, 30 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index cb66ec5..2210d5f 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2003-12-16 Guilhem Lavaux <guilhem@kaffe.org> + Helmer Kraemer <hkraemer@freenet.de> + + * gnu/java/lang/reflect/TypeSignature.java (getClassForEncoding): + Splitted the method so we can specify an explicit boot loader. + 2003-12-15 Graydon Hoare <graydon@redhat.com> * jni/gtk-peer/gdkfont.h: New file. diff --git a/libjava/gnu/java/lang/reflect/TypeSignature.java b/libjava/gnu/java/lang/reflect/TypeSignature.java index e9c8861..1cf55a6 100644 --- a/libjava/gnu/java/lang/reflect/TypeSignature.java +++ b/libjava/gnu/java/lang/reflect/TypeSignature.java @@ -1,5 +1,5 @@ /* TypeSignature.java -- Class used to compute type signatures - Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -150,6 +150,29 @@ public class TypeSignature public static Class getClassForEncoding(String type_code, boolean descriptor) throws ClassNotFoundException { + return getClassForEncoding(type_code, descriptor, null); + } + + /** + * 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) + */ + public static Class getClassForEncoding(String type_code, boolean descriptor, + ClassLoader loader) + throws ClassNotFoundException + { if (descriptor) { switch (type_code.charAt(0)) |