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) {