/** * If the processor class is annotated with {@link SupportedAnnotationTypes}, return an * unmodifiable set with the same set of strings as the annotation. If the class is not so * annotated, an empty set is returned. * * @return the names of the annotation types supported by this processor, or an empty set if none */ public Set<String> getSupportedAnnotationTypes() { SupportedAnnotationTypes sat = this.getClass().getAnnotation(SupportedAnnotationTypes.class); if (sat == null) { if (isInitialized()) processingEnv .getMessager() .printMessage( Diagnostic.Kind.WARNING, "No SupportedAnnotationTypes annotation " + "found on " + this.getClass().getName() + ", returning an empty set."); return Collections.emptySet(); } else return arrayToSet(sat.value()); }
/** * If the processor class is annotated with {@link SupportedSourceVersion}, return the source * version in the annotation. If the class is not so annotated, {@link SourceVersion#RELEASE_6} is * returned. * * @return the latest source version supported by this processor */ public SourceVersion getSupportedSourceVersion() { SupportedSourceVersion ssv = this.getClass().getAnnotation(SupportedSourceVersion.class); SourceVersion sv = null; if (ssv == null) { sv = SourceVersion.RELEASE_6; if (isInitialized()) processingEnv .getMessager() .printMessage( Diagnostic.Kind.WARNING, "No SupportedSourceVersion annotation " + "found on " + this.getClass().getName() + ", returning " + sv + "."); } else sv = ssv.value(); return sv; }
@Override public synchronized void init(ProcessingEnvironment processingEnv) { super.init(processingEnv); this.utils = new Utils(processingEnv.getElementUtils(), processingEnv.getTypeUtils()); }