Mercurial > hg > truffle
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: