< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodeinfo.processor/src/org/graalvm/compiler/nodeinfo/processor/GraphNodeProcessor.java

Print this page
rev 52509 : [mq]: graal


 112         message(kind, element, "Exception thrown during processing: %s", buf.toString());
 113     }
 114 
 115     boolean isNodeType(Element element) {
 116         if (element.getKind() != ElementKind.CLASS) {
 117             return false;
 118         }
 119         TypeElement type = (TypeElement) element;
 120         Types types = processingEnv.getTypeUtils();
 121 
 122         while (type != null) {
 123             if (type.toString().equals("org.graalvm.compiler.graph.Node")) {
 124                 return true;
 125             }
 126             type = (TypeElement) types.asElement(type.getSuperclass());
 127         }
 128         return false;
 129     }
 130 
 131     @Override
 132     public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
 133         if (roundEnv.processingOver()) {
 134             return false;
 135         }
 136 
 137         GraphNodeVerifier verifier = new GraphNodeVerifier(this);
 138 
 139         for (Element element : roundEnv.getElementsAnnotatedWith(getTypeElement(NODE_INFO_CLASS_NAME))) {
 140             scope = element;
 141             try {
 142                 if (!isNodeType(element)) {
 143                     errorMessage(element, "%s can only be applied to Node subclasses", getSimpleName(NODE_INFO_CLASS_NAME));
 144                     continue;
 145                 }
 146 
 147                 AnnotationMirror nodeInfo = getAnnotation(element, getType(NODE_INFO_CLASS_NAME));
 148                 if (nodeInfo == null) {
 149                     errorMessage(element, "Cannot get %s annotation from annotated element", getSimpleName(NODE_INFO_CLASS_NAME));
 150                     continue;
 151                 }
 152 




 112         message(kind, element, "Exception thrown during processing: %s", buf.toString());
 113     }
 114 
 115     boolean isNodeType(Element element) {
 116         if (element.getKind() != ElementKind.CLASS) {
 117             return false;
 118         }
 119         TypeElement type = (TypeElement) element;
 120         Types types = processingEnv.getTypeUtils();
 121 
 122         while (type != null) {
 123             if (type.toString().equals("org.graalvm.compiler.graph.Node")) {
 124                 return true;
 125             }
 126             type = (TypeElement) types.asElement(type.getSuperclass());
 127         }
 128         return false;
 129     }
 130 
 131     @Override
 132     public boolean doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
 133         if (roundEnv.processingOver()) {
 134             return false;
 135         }
 136 
 137         GraphNodeVerifier verifier = new GraphNodeVerifier(this);
 138 
 139         for (Element element : roundEnv.getElementsAnnotatedWith(getTypeElement(NODE_INFO_CLASS_NAME))) {
 140             scope = element;
 141             try {
 142                 if (!isNodeType(element)) {
 143                     errorMessage(element, "%s can only be applied to Node subclasses", getSimpleName(NODE_INFO_CLASS_NAME));
 144                     continue;
 145                 }
 146 
 147                 AnnotationMirror nodeInfo = getAnnotation(element, getType(NODE_INFO_CLASS_NAME));
 148                 if (nodeInfo == null) {
 149                     errorMessage(element, "Cannot get %s annotation from annotated element", getSimpleName(NODE_INFO_CLASS_NAME));
 150                     continue;
 151                 }
 152 


< prev index next >