# HG changeset patch # User Jaroslav Tulach # Date 1354360512 -3600 # Node ID c40f7028362056a34d0d66f7d64153dd804f248e # Parent fae5261c8a9acc619664894f7d8fce8bab5bfe87 Returns correct canonical name diff -r fae5261c8a9a -r c40f70283620 emul/src/main/java/java/lang/Class.java --- a/emul/src/main/java/java/lang/Class.java Sat Dec 01 12:14:37 2012 +0100 +++ b/emul/src/main/java/java/lang/Class.java Sat Dec 01 12:15:12 2012 +0100 @@ -274,7 +274,9 @@ * {@code false} otherwise. * @since JDK1.1 */ - public native boolean isArray(); + public boolean isArray() { + return false; + } /** @@ -497,25 +499,25 @@ * @since 1.5 */ public String getCanonicalName() { - throw new UnsupportedOperationException(); -// if (isArray()) { -// String canonicalName = getComponentType().getCanonicalName(); -// if (canonicalName != null) -// return canonicalName + "[]"; -// else -// return null; -// } + if (isArray()) { + String canonicalName = getComponentType().getCanonicalName(); + if (canonicalName != null) + return canonicalName + "[]"; + else + return null; + } // if (isLocalOrAnonymousClass()) // return null; // Class enclosingClass = getEnclosingClass(); -// if (enclosingClass == null) { // top level class -// return getName(); -// } else { -// String enclosingName = enclosingClass.getCanonicalName(); -// if (enclosingName == null) -// return null; -// return enclosingName + "." + getSimpleName(); -// } + Class enclosingClass = null; + if (enclosingClass == null) { // top level class + return getName(); + } else { + String enclosingName = enclosingClass.getCanonicalName(); + if (enclosingName == null) + return null; + return enclosingName + "." + getSimpleName(); + } } /** @@ -676,7 +678,9 @@ * @see java.lang.reflect.Array * @since JDK1.1 */ - public native Class getComponentType(); + public Class getComponentType() { + return null; + } /** * Returns true if and only if this class was declared as an enum in the diff -r fae5261c8a9a -r c40f70283620 javap/src/main/java/org/apidesign/javap/ClassData.java --- a/javap/src/main/java/org/apidesign/javap/ClassData.java Sat Dec 01 12:14:37 2012 +0100 +++ b/javap/src/main/java/org/apidesign/javap/ClassData.java Sat Dec 01 12:15:12 2012 +0100 @@ -550,7 +550,7 @@ case CONSTANT_CLASS: String jn = javaName(getClassName(cpx)); if (textual) { - return jn.replace('/', '_') + ".$class"; + return jn.replace('/', '_') + "(false).constructor.$class"; } return jn; case CONSTANT_STRING: