Checkstyle / Module / JavadocComments



Javadoc に関連する部分のチェック。

PackageHtml

親モジュールChecker
実装クラスcom.puppycrawl.tools.checkstyle.checks.PackageHtmlCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.javadoc.PackageHtmlCheck(3.2)

各パッケージに、package.html が存在しているかをチェック。要は、.java なファイルがあるディレクトリに package.html があるかどうかをチェックする。

プロパティ名デフォルト概要
fileExtensionsString Setjavajavaファイルであることを表す拡張子を指定。

記述サンプル

  • Standard Checkstyle
    <module name = "PackageHtml">
       <property name = "fileExtensions" value = "java" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.PackageHtmlCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "fileExtensions" value = "java" />
        </config-properties>
    </rule-configuration>

JavadocType

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.JavadocTypeCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck(3.2)

クラス及びインターフェイスでの Javadoc コメントについてチェックします。

プロパティ名デフォルト概要
scopeScopeprivateチェックが行われる可視性スコープ
excludeScopeScopenull(Since 3.4)チェックを行わない可視性スコープ
authorFormatRegular Expressionnull@author タグのチェックするパターン
versionFormatRegular Expressionnull@version タグのチェックするパターン
tokensINTERFACE_DEF, CLASS_DEFすべてチェック対象を選択

記述サンプル

  • Standard Checkstyle
    <module name = "JavadocType">
        <property name = "scope" value = "public" />
        <property name = "tokens" value = "CLASS_DEF" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.JavadocTypeCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "scope" value = "public" />
            <config-property name = "tokens" value = "CLASS_DEF" />
        </config-properties>
    </rule-configuration>

JavadocMethod

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.JavadocMethodCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck(3.2)

メソッドでの Javadoc コメントについてチェックする必要がある場合(チェック対象のタグが存在する場合)にチェックします。

また、あるインターフェイスのメソッドを実装したりスーパークラスのメソッドをオーバーライドした場合に、その実装したメソッドの Javadoc を移してくるのは面倒です。そういった場合のために、@see タグや {@inheritDoc} を使っていても Checkstyle は処理してくれます。

プロパティ名デフォルト概要
scopeScopeprivateチェックが行われる可視性スコープ
excludeScopeScopenull(Since 3.4)チェックを行わない可視性スコープ
allowUndeclaredRTEBooleanfalseRuntimeExceptionが宣言されていない場合をチェックするか?
allowThrowsTagsForSubclassesBooleanfalse長いので後述
allowMissingParamTagsBooleanfalse@paramがないのをチェックするか?
allowMissingThrowsTagsBooleanfalse@throwsがないのをチェックするか?
allowMissingReturnTagBooleanfalse@returnがないのをチェックするか?
tokensMETHOD_DEF, CTOR_DEFすべてチェック対象を選択

allowThrowsTagsForSubclasses とは、throws で指定されている Throwable なクラスのサブクラスがスローされるときに、@throws タグにそのサブクラスのドキュメントがあればよいとするかどうかを指定するものです。以下のサンプルで確認します。

/**
 * @throws IllegalArgumentException サブクラスのドキュメント
 */
protected void runUnknown() throws RuntimeException {

    throw new IllegalArgumentException();
}

このソースは、allowThrowsTagsForSubclasses が true だとチェックが通り、false だと通りません。


記述サンプル

  • Standard Checkstyle
    <module name = "JavadocMethod">
       <property name = "scope" value = "protected" />
       <property name = "allowThrowsTagsForSubclass" value = "true" />
       <property name = "tokens" value = "METHOD_DEF" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.JavadocVariableCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "scope" value = "protected" />
            <config-property name = "allowThrowsTagsForSubclass" value = "true" />
            <config-property name = "tokens" value = "METHOD_DEF" />
        </config-properties>
    </rule-configuration>

JavadocVariable

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.JavadocVariableCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck(3.2)

フィールドでの Javadoc コメントのチェックを行います。

プロパティ名デフォルト概要
scopeScopeprivateチェックが行われる可視性スコープ
excludeScopeScopenull(Since 3.4)チェックを行わない可視性スコープ

記述サンプル

  • Standard Checkstyle
    <module name = "JavadocVariable">
       <property name = "scope" value = "private" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.JavadocVariableCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "scope" value = "private" />
        </config-properties>
    </rule-configuration>

JavadocStyle

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.javadoc.JavadocStyleCheck
Since3.2

Javadoc コメントが妥当な書式で書かれているかをチェックします。チェック項目には、以下のようなものがあります。

  • 最初の一文が、正しく句読点で終わっているかどうか? 最初の一文は、javadoc でメソッドの概要や索引に使われています。正しく句読点で終わっていないと、Javadoc が不格好になってしまうかもしれません。
  • テキスト内の HTML が整形式になっているかどうか? このチェックでは、タグの閉じ忘れを検出した場合には、"Unclosed HTML tag found:" というエラーを出します。また、開始タグがないのに終了タグがある場合には、"Extra HTML tag found:" というエラーを出します。
プロパティ名デフォルト概要
scopeScopeprivateチェックが行われる可視性スコープ
excludeScopeScopenull(Since 3.4)チェックを行わない可視性スコープ
checkFirstSentenceBooleantrue最初の一文の句読点チェックを行うか?
checkEmptyJavadocBooleanfalse(Since 3.4)Javadoc コメントに説明文があるか?
checkHtmlBooleantrueテキスト内の HTML が整形式か?
tokensINTERFACE_DEF, CLASS_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEFすべてチェック対象を選択

記述サンプル

  • Standard Checkstyle
    <module name = "JavadocStyle">
       <property name = "scope" value = "private" />
       <property name = "checkFirstSentence value = "false" />
       <property name = "checkHtml" value = "false" />
    </module>