    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.fukurou.taglet;
    017
    018import com.sun.tools.doclets.standard.Standard;
    019
    020import com.sun.javadoc.RootDoc;
    021import com.sun.javadoc.ClassDoc;
    022
    023/**
    024 * ソースコメントから、タグ情報を取り出す Doclet クラスです。
    025 * クラスファイルの仕様を表現する為、og.formSample , og.rev , og.group ,
    026 * version , author , since の各タグコメントより値を抽出します。
    027 * また、各クラスの継承関係、インターフェース、メソッドなども抽出します。
    028 * これらの抽出結果をDB化し、EXCELファイルに帳票出力する事で、クラスファイルの
    029 * ソースから仕様書を逆作成します。
    030 *
    031 * @version  4.0
    032 * @author   Kazuhiko Hasegawa
    033 * @since    JDK5.0,
    034 */
    035public final class DocletStandard {
    036
    037        /**
    038         * Doclet のエントリポイントメソッドです。
    039         *
    040         * @og.rev 5.5.4.1 (2012/07/06) Tag出力時の CR → BR 変換を行わない様にする。
    041         * @og.rev 5.7.1.1 (2013/12/13) タグのインデントを止める。
    042         *
    043         * @param       root    エントリポイントのRootDocオブジェクト
    044         *
    045         * @return 正常実行時 true
    046         */
    047        public static boolean start( final RootDoc root ) {
    048                for ( ClassDoc classdoc : root.classes() ) {
    049                        classdoc.setRawCommentText( "<pre>" + classdoc.getRawCommentText() + "</pre>" );
    050                }
    051
    052                return Standard.start( root );
    053        }
    054
    055        /**
    056         * カスタムオプションを使用するドックレットの必須メソッド optionLength(String) です。
    057         *
    058         * ドックレットに認識させる各カスタムオプションに、 optionLength がその
    059         * オプションを構成する要素 (トークン) の数を返さなければなりません。
    060         * このカスタムオプションでは、 -tag オプションそのものと
    061         * その値の 2 つの要素で構成されるので、作成するドックレットの
    062         * optionLengthメソッドは、 -tag オプションに対して 2 を返さなくては
    063         * なりません。また、認識できないオプションに対しては、0 を返します。
    064         *
    065         * @param       option  オプション文字列
    066         *
    067         * @return      要素(トークン) の数
    068         */
    069//      public static int optionLength( final String option ) {
    070//              return Standard.optionLength(option);
    071//      }
    072}