2011-12-14 1 views
4

У меня естьАннотация Обработка Инструмент <- проверка действительного аннотацию

@ColumnMetadata(index=1) 
... 
@ColumnMetadata(index=2) 
... 
@ColumnMetadata(index=3) 
... 

И я должен проверить ли номера индексов являются уникальными с помощью APT. Я не знаю, как это сделать. Я не понимаю учебники, как правило, у меня проблемы с поиском материалов в сети.

Как это сделать? Любые учебники/что-нибудь об APT?

ответ

7

Возможно, вы захотите использовать подключаемый API аннотации, преемник инструмента apt. Вот краткое руководство для начала работы: Java 6.0 Features Part – 2 : Pluggable Annotation Processing API

Это примерно шаги, которые необходимо сделать, чтобы проверить аннотации:

  1. Создать процессор аннотаций, она должна распространяться AbstractProcessor.
  2. Определите, какие аннотации искать, добавлять:
    @SupportedAnnotationTypes(value= {"full.name.of.ColumnMetadata"})
  3. Override метод process.
  4. Используйте параметр RoundEnvironment для доступа к элементам исходного кода. Какие элементы вам нужны, зависит от того, что вы хотите сделать.
    • Сверху вниз: getRootElements предоставляет все классы, которые вы можете фильтровать для определенных элементов, которые вы хотите проверить. Этот метод полезен, если вы хотите проанализировать структуру кода вокруг своих аннотаций, например класс, в котором содержатся ваши комментарии к методу или свойствам.
    • Подход снизу: getElementsAnnotatedWith Используйте этот метод для получения только аннотированных элементов. Вы можете вывести положение элементов, но, возможно, вам нужно будет отслеживать свои элементы, если вы хотите их сравнить (например, путем сопоставления списка аннотированных элементов с типом класса).
  5. Петля над элементами, которые вы хотите, и получите AnnotationMirror. Get и проверьте значения.
  6. Если вы хотите сообщить об ошибке, воспользуйтесь Messager с элементом. Вы можете создать хорошие сообщения об ошибках компилятора в своей среде разработки.

 Смежные вопросы

  • Нет связанных вопросов^_^