Как установить несколько свойств Java-аннотации с помощью xtend (используя xbase)

Согласно документации JvmTypesBuilder, я должен использовать toAnnotation(EObject sourceElement, Class type, Object value)

Я не понимаю, какую ценность я должен поставить там? Потому что у меня есть аннотация

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface OResultInfo {
    String rowNames() default "";
    String columnNames() default "";
    String keyNames() default "";
}

Я абсолютно не знаю, как установить эти значения. Может быть, есть что-то о аннотациях Java, которые я не знаю / не понимаю?

1 ответ

Вам нужно использовать

val jvmAnnotation = toAnnotation(EObject sourceElement, Class type)

И создайте и добавьте значения аннотаций для каждого значения и назначьте его для jvmAnnotationReference:

val annotationValue = TypesFactory.eInstance.createJvmStringAnnotationValue();
annotationValue.getValues().add(value);
annotationValue.setOperation(annotationTypesOperation); //i.e. the JvmOperation representing rowNames(), columnNames() or keyNames()
jvmAnnotation.getValues().add(annotationValue);
Другие вопросы по тегам