Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 16786:45c8f64978d6
Truffle-DSL: initial cleanups for code sharing with the new graal annotation processor.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 12 Aug 2014 17:21:06 +0200 |
parents | 89f635cbd85e |
children | 7977cb9fa21f |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Tue Aug 12 14:54:36 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java Tue Aug 12 17:21:06 2014 +0200 @@ -40,6 +40,39 @@ */ public class ElementUtils { + public static TypeMirror getType(ProcessingEnvironment processingEnv, Class<?> element) { + TypeMirror mirror; + if (element.isPrimitive()) { + TypeKind typeKind; + if (element == boolean.class) { + typeKind = TypeKind.BOOLEAN; + } else if (element == byte.class) { + typeKind = TypeKind.BYTE; + } else if (element == short.class) { + typeKind = TypeKind.SHORT; + } else if (element == char.class) { + typeKind = TypeKind.CHAR; + } else if (element == int.class) { + typeKind = TypeKind.INT; + } else if (element == long.class) { + typeKind = TypeKind.LONG; + } else if (element == float.class) { + typeKind = TypeKind.FLOAT; + } else if (element == double.class) { + typeKind = TypeKind.DOUBLE; + } else if (element == void.class) { + typeKind = TypeKind.VOID; + } else { + assert false; + return null; + } + mirror = processingEnv.getTypeUtils().getPrimitiveType(typeKind); + } else { + mirror = processingEnv.getElementUtils().getTypeElement(element.getCanonicalName()).asType(); + } + return mirror; + } + public static ExecutableElement findExecutableElement(DeclaredType type, String name) { List<? extends ExecutableElement> elements = ElementFilter.methodsIn(type.asElement().getEnclosedElements()); for (ExecutableElement executableElement : elements) { @@ -801,7 +834,7 @@ return null; } - private static PackageElement findPackageElement(Element type) { + public static PackageElement findPackageElement(Element type) { List<Element> hierarchy = getElementHierarchy(type); for (Element element : hierarchy) { if (element.getKind() == ElementKind.PACKAGE) {