package org.genedb.query.generation; import java.util.Set; import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironment; import javax.annotation.processing.SupportedAnnotationTypes; import javax.annotation.processing.SupportedSourceVersion; import javax.lang.model.SourceVersion; import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; import javax.lang.model.util.ElementScanner6; @SupportedSourceVersion(SourceVersion.RELEASE_6) @SupportedAnnotationTypes("org.genedb.querying.*") public class QueryAnnotationProcessor extends AbstractProcessor { // private Trees trees; // private TreePathScanner<Object, Trees> visitor = new QueryTreeVisitor(); // @Override // public void init(ProcessingEnvironment pe) { // super.init(pe); // trees = Trees.instance(pe); // } @Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { // Utils //Types typeUtils = processingEnv.getTypeUtils(); //Elements elementUtils = processingEnv.getElementUtils(); //Messager messager = processingEnv.getMessager(); // The Serializable interface - used for comparison //TypeMirror query = processingEnv.getElementUtils().getTypeElement(Query.class.getCanonicalName()).asType(); Set<? extends Element> rootElements = roundEnv.getRootElements(); for (Element element : rootElements){ // TreePath tp = trees.getPath(element); // invoke the scanner // visitor.scan(tp, trees); } // Prevent other processors from processing this annotation return true; } } //class QueryTreeVisitor extends ElementScanner6<Object> { // // @Override // public Object visitClass(ClassTree classTree, Trees trees) { // return super.visitClass(classTree, trees); // } // // @Override // public Object visitMethod(MethodTree methodTree, Trees trees) { // // return super.visitMethod(methodTree, trees); // } //}