< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/ReplacementsAnnotationProcessor.java

Print this page
rev 52509 : [mq]: graal


  34 import javax.lang.model.element.AnnotationMirror;
  35 import javax.lang.model.element.Element;
  36 import javax.lang.model.element.TypeElement;
  37 import javax.tools.Diagnostic.Kind;
  38 
  39 import org.graalvm.compiler.processor.AbstractProcessor;
  40 
  41 /**
  42  * Processor for annotation types in the {@code org.graalvm.compiler.replacements} name space.
  43  */
  44 public class ReplacementsAnnotationProcessor extends AbstractProcessor {
  45 
  46     private List<AnnotationHandler> handlers;
  47 
  48     @Override
  49     public SourceVersion getSupportedSourceVersion() {
  50         return SourceVersion.latest();
  51     }
  52 
  53     @Override
  54     public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
  55         if (!roundEnv.processingOver()) {
  56             PluginGenerator generator = new PluginGenerator();
  57             for (AnnotationHandler handler : getHandlers()) {
  58                 TypeElement annotationClass = getTypeElementOrNull(handler.annotationTypeName);
  59                 if (annotationClass != null) {
  60                     for (Element e : roundEnv.getElementsAnnotatedWith(annotationClass)) {
  61                         AnnotationMirror annotationMirror = getAnnotation(e, annotationClass.asType());
  62                         handler.process(e, annotationMirror, generator);
  63                     }
  64                 } else {
  65                     Set<? extends Element> roots = roundEnv.getRootElements();
  66                     String message = String.format("Processor %s disabled as %s is not resolvable on the compilation class path", handler.getClass().getName(), handler.annotationTypeName);
  67                     if (roots.isEmpty()) {
  68                         env().getMessager().printMessage(Kind.WARNING, message);
  69                     } else {
  70                         env().getMessager().printMessage(Kind.WARNING, message, roots.iterator().next());
  71                     }
  72                 }
  73             }
  74             generator.generateAll(this);




  34 import javax.lang.model.element.AnnotationMirror;
  35 import javax.lang.model.element.Element;
  36 import javax.lang.model.element.TypeElement;
  37 import javax.tools.Diagnostic.Kind;
  38 
  39 import org.graalvm.compiler.processor.AbstractProcessor;
  40 
  41 /**
  42  * Processor for annotation types in the {@code org.graalvm.compiler.replacements} name space.
  43  */
  44 public class ReplacementsAnnotationProcessor extends AbstractProcessor {
  45 
  46     private List<AnnotationHandler> handlers;
  47 
  48     @Override
  49     public SourceVersion getSupportedSourceVersion() {
  50         return SourceVersion.latest();
  51     }
  52 
  53     @Override
  54     public boolean doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
  55         if (!roundEnv.processingOver()) {
  56             PluginGenerator generator = new PluginGenerator();
  57             for (AnnotationHandler handler : getHandlers()) {
  58                 TypeElement annotationClass = getTypeElementOrNull(handler.annotationTypeName);
  59                 if (annotationClass != null) {
  60                     for (Element e : roundEnv.getElementsAnnotatedWith(annotationClass)) {
  61                         AnnotationMirror annotationMirror = getAnnotation(e, annotationClass.asType());
  62                         handler.process(e, annotationMirror, generator);
  63                     }
  64                 } else {
  65                     Set<? extends Element> roots = roundEnv.getRootElements();
  66                     String message = String.format("Processor %s disabled as %s is not resolvable on the compilation class path", handler.getClass().getName(), handler.annotationTypeName);
  67                     if (roots.isEmpty()) {
  68                         env().getMessager().printMessage(Kind.WARNING, message);
  69                     } else {
  70                         env().getMessager().printMessage(Kind.WARNING, message, roots.iterator().next());
  71                     }
  72                 }
  73             }
  74             generator.generateAll(this);


< prev index next >