Я создал аннотацию, применил ее к DTO и написал обработчик аннотаций в стиле Java 1.6. Я вижу, как заставить annotationProcessor записать новый исходный файл, а это не то, что я хочу делать, я не вижу или не могу узнать, как заставить его изменить существующий класс (в идеале просто изменить байтовый код). Модификация на самом деле довольно тривиальна, все, что я хочу, чтобы процессор сделал, это вставить новый метод получения и установки, имя которого происходит от значения обрабатываемой аннотации.
Мой обработчик аннотаций выглядит так:
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes({ "com.kn.salog.annotation.AggregateField" })
public class SalogDTOAnnotationProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
//do some stuff
}
}