Comments 5
Вы бы еще разобрали по частям метод process, былоб замечательно!
Не то, чтобы по частям, но объяснения магических строк не хватает, да.
Ну в этом методе все понятно, там цикл по аннотированным элементам. Из каждого элемента достаётся сама аннотация с параметрами
и создается новый класс
е — это аннотированный элемент и ca — сама аннотация. Если вы запустите и сгенирируете, то все будет наглядно видно.
CustomAnnotation ca = e.getAnnotation(CustomAnnotation.class);
и создается новый класс
JavaFileObject f = processingEnv.getFiler().createSourceFile(clazz.getQualifiedName() + "Autogenerate");
, в который записываются строки класса. Вот этими строчками я вывела в виде комментария все данные, которыми мы можем оперировать pw.println("\n//" + e);
pw.println("//" + ca);
е — это аннотированный элемент и ca — сама аннотация. Если вы запустите и сгенирируете, то все будет наглядно видно.
Очень похоже на Xtend Active Annotations, правда там генерация кода чуть более читабельна:
www.eclipse.org/community/eclipse_newsletter/2013/march/article1.php
Жаль это все прибито гвоздями к Eclipse :(
www.eclipse.org/community/eclipse_newsletter/2013/march/article1.php
Жаль это все прибито гвоздями к Eclipse :(
Можете поделиться прямой ссылкой на IntelliJ IDEA 12.1 Community Edition для Linux (лучше независимый от ОС архив)? Никак не удаётся скачать этот свободный релиз с официальной страницы JetBrains — то ли глюки сайта, то ли Firefox чудит.
Sign up to leave a comment.
Custom Annotation Preprocessor — создание на базе Android-приложения и конфигурация в IntelliJ IDEA