Я пишу преобразование AST, и мне нужно создать поле внутри моего AST с аннотацией @Delegate
.
У меня есть класс А., к которому я применяю аннотацию.
@MyAnnotation
class A{ }
MyAnnotation имеет MyAnnotationASTTransformation, где я пытаюсь создать поле типа B и добавить его к классу A. Желаемый результат после компиляции:
class A{
@Delegate
B object = new B()
}
Внутри ASTTransformation я попытался AstBuildet.buildFromString
List<ASTNode> astNodeList = new AstBuilder().buildFromString(
CompilePhase.CONVERSION,
String.format(
"class A{\n" +
" @Delegate\n"+
" B b = new B()\n"+
"}\n"
)
)
List<FieldNode> fieldNodeList =((ClassNode)astNodeList.get(1)).getFields()
classNode.addField(fieldNodeList.get(0))
Добавление этого в мой проект приводит к следующей ошибке:
8: class Delegate is not an annotation in @Delegate
Без @Delegate все работает нормально, могу ли я каким-то образом вручную добавить @Delegate в мою ASTTransformation?