I write a custom annotation Processor
, I hope get ast tree in process
method in eclipse ecj compiler:
private JavacProcessingEnvironment env;
private BaseProcessingEnvImpl eclipseEnv;
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
if (!annotations.isEmpty()) {
Set<? extends Element> elementsAnno = roundEnv.getElementsAnnotatedWith(xxxxAnnoClass.class);
if (env != null) { // javac
Context context = env.getContext();
Trees trees = Trees.instance(env);
elementsAnno.forEach(e -> {
JCTree tree = ((JavacTrees) trees).getTree(e);
});
new TreeTranslator().translate(tree);
}else { // eclipse ecj
// how to write the code equivalent of javac
}
}
}