Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Разрабатываем iDocТретий этап работы, подготовкой для которого были выбор инструментов и проектирование интерфейса, предполагает непосредственно создание генератора HTML-страниц. С этой целью нужно создать простой doclet, который может использоваться со стандартной утилитой javadoc от Sun. Для этого можно использовать пакеты java, однако iDoc также для всех файлов с исходным кодом может генерировать документацию. В частности, для исходного кода OpenJDK можно сгенерировать Javadoc, поскольку данная библиотека является общедоступной и имеет лицензию GPL V2 (GNU Public License). Весь порядок генерирования Javadoc в iDoc состоит в интегрировании по списку пакетов и классов и предполагает вызов методов статического HTML в описанном ранее формате. В листинге 4 приведены методы вывода текста на итоговую страницу. Листинг 4. Код doclet'a, генерирующий детальные HTML-страницы private void printDetail(PrintStream p, ProgramElementDoc doc, String id, String name) { divHeader(p, id, name, "panel"); textHeader(p, null); textRow(p, getSignature(doc)); textRow(p, getCommentText(doc.commentText())); textFooter(p); if (doc instanceof ExecutableMemberDoc) { printMethodDetail(p, (ExecutableMemberDoc) doc); } divFooter(p); }
private void printMethodDetail(PrintStream p, ExecutableMemberDoc field) { if (field.parameters().length > 0) { textHeader(p, "Parameters"); for (int i=0; i<field.paramTags().length; i++) { textRow(p, "<b>" + field.parameters()[i].typeName() + " " + field.paramTags()[i].parameterName() + "</b>: " + getCommentText(field.paramTags()[i].parameterComment())); } textFooter(p); } if (field.throwsTags().length > 0) { textHeader(p, "Throws"); for (int i=0; i<field.throwsTags().length; i++) { textRow(p, "<b>" + field.throwsTags()[i].exceptionName() + "</b>: " + getCommentText(field.throwsTags()[i].exceptionComment())); } textFooter(p); } }
Приведенный код создан так, чтобы генерирование документации для классов, полей, конструкторов и методов осуществлялось с помощью метода printDetail (). Для конструкторов и методов, при этом, дополнительно выводятся данные о параметрах и исключениях, т.к. представлены они в виде объектов классов-наследников ExecutableMemberDoc.
|