diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 16909:62cfffca9be2

Truffle-DSL: some more performance optimizations.
author Christian Humer <christian.humer@gmail.com>
date Sat, 23 Aug 2014 19:31:18 +0200
parents 433ece7d941d
children 93e061157811
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Sat Aug 23 19:31:13 2014 +0200
+++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java	Sat Aug 23 19:31:18 2014 +0200
@@ -398,7 +398,7 @@
             case LONG:
                 return "long";
             case DECLARED:
-                return getDeclaredName((DeclaredType) mirror);
+                return getDeclaredName((DeclaredType) mirror, true);
             case ARRAY:
                 return getSimpleName(((ArrayType) mirror).getComponentType()) + "[]";
             case VOID:
@@ -424,10 +424,10 @@
         return b.toString();
     }
 
-    private static String getDeclaredName(DeclaredType element) {
+    public static String getDeclaredName(DeclaredType element, boolean includeTypeVariables) {
         String simpleName = fixECJBinaryNameIssue(element.asElement().getSimpleName().toString());
 
-        if (element.getTypeArguments().size() == 0) {
+        if (!includeTypeVariables || element.getTypeArguments().size() == 0) {
             return simpleName;
         }
 
@@ -655,6 +655,17 @@
         return findPackageElement(element).getQualifiedName().toString();
     }
 
+    public static String getEnclosedQualifiedName(DeclaredType mirror) {
+        Element e = ((TypeElement) mirror.asElement()).getEnclosingElement();
+        if (e.getKind() == ElementKind.PACKAGE) {
+            return ((PackageElement) e).getQualifiedName().toString();
+        } else if (e.getKind().isInterface() || e.getKind().isClass()) {
+            return getQualifiedName((TypeElement) e);
+        } else {
+            return null;
+        }
+    }
+
     public static String getPackageName(TypeMirror mirror) {
         switch (mirror.getKind()) {
             case BOOLEAN: