From a2a679b2e3552870871679fc83b81e99f1b46138 Mon Sep 17 00:00:00 2001 From: Mike Poindexter Date: Mon, 20 Jul 2015 17:49:31 -0700 Subject: [PATCH] Implement Class.getSimpleName --- .../org/teavm/classlib/java/lang/TClass.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/teavm-classlib/src/main/java/org/teavm/classlib/java/lang/TClass.java b/teavm-classlib/src/main/java/org/teavm/classlib/java/lang/TClass.java index 662f9bcd3..a6d6861b1 100644 --- a/teavm-classlib/src/main/java/org/teavm/classlib/java/lang/TClass.java +++ b/teavm-classlib/src/main/java/org/teavm/classlib/java/lang/TClass.java @@ -17,6 +17,7 @@ package org.teavm.classlib.java.lang; import java.util.HashMap; import java.util.Map; + import org.teavm.classlib.impl.DeclaringClassMetadataGenerator; import org.teavm.classlib.java.lang.annotation.TAnnotation; import org.teavm.classlib.java.lang.reflect.TAnnotatedElement; @@ -32,6 +33,7 @@ import org.teavm.platform.metadata.ClassScopedMetadataProvider; */ public class TClass extends TObject implements TAnnotatedElement { TString name; + TString simpleName; private TClass componentType; private boolean componentTypeDirty = true; private PlatformClass platformClass; @@ -73,6 +75,26 @@ public class TClass extends TObject implements TAnnotatedElement { return name; } + public TString getSimpleName() { + if (simpleName == null) { + String name = platformClass.getMetadata().getName(); + int lastDollar = name.lastIndexOf('$'); + if (lastDollar != -1) { + name = name.substring(lastDollar + 1); + if (name.charAt(0) >= 0 && name.charAt(0) <= 9) { + name = ""; + } + } else { + int lastDot = name.lastIndexOf('.'); + if (lastDot != -1) { + name = name.substring(lastDot + 1); + } + } + simpleName = TString.wrap(name); + } + return simpleName; + } + public boolean isPrimitive() { return platformClass.getMetadata().isPrimitive(); }