Я создал аннотацию, применил ее к 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
}
}