i have been experimenting code generation in annotation processor.
consider following piece of code adds constructor has statement in it.
private void addregister(executableelement el) { methodspec builder = methodspec.constructorbuilder().addstatement("$t.register(this)", eventexecutor.class).build(); typespec spec = typespec.classbuilder(el.getenclosingelement().getsimplename().tostring()).addoriginatingelement(el).addmethod(builder).build(); javafile file = javafile.builder(penv.getelementutils().getpackageof(el.getenclosingelement()).getqualifiedname().tostring(), spec).build(); penv.getmessager().printmessage(diagnostic.kind.note, file.tostring()); }
now, when given executable element named "bla" in class "test" result this:
class test { test() { eventexecutor.register(this); } }
however class exists , want append constructor existing code rather create fresh class here.
existing code:
public class test { @event public void bla(testevent event) { } }
can this?