Class JavadocVariableCheck

All Implemented Interfaces:
Configurable, Contextualizable

public class JavadocVariableCheck extends AbstractCheck

Checks that a variable has a Javadoc comment. Ignores serialVersionUID fields.

  • Property scope - Specify the visibility scope where Javadoc comments are checked. Type is com.puppycrawl.tools.checkstyle.api.Scope. Default value is private.
  • Property excludeScope - Specify the visibility scope where Javadoc comments are not checked. Type is com.puppycrawl.tools.checkstyle.api.Scope. Default value is null.
  • Property ignoreNamePattern - Specify the regexp to define variable names to ignore. Type is java.util.regex.Pattern. Default value is null.
  • Property tokens - tokens to check Type is java.lang.String[]. Validation type is tokenSet. Default value is: ENUM_CONSTANT_DEF.

To configure the default check:

 <module name="JavadocVariable"/>
 

By default, this setting will report a violation if there is no javadoc for any scope member.

 public class Test {
   private int a; // violation, missing javadoc for private member

   /**
    * Some description here
    */
   private int b; // OK
   protected int c; // violation, missing javadoc for protected member
   public int d; // violation, missing javadoc for public member
   /*package*/ int e; // violation, missing javadoc for package member
 }
 

To configure the check for public scope:

 <module name="JavadocVariable">
   <property name="scope" value="public"/>
 </module>
 

This setting will report a violation if there is no javadoc for public member.

 public class Test {
   private int a; // OK

   /**
    * Some description here
    */
   private int b; // OK
   protected int c; // OK
   public int d; // violation, missing javadoc for public member
   /*package*/ int e; // OK
 }
 

To configure the check for members which are in private, but not in protected scope:

 <module name="JavadocVariable">
   <property name="scope" value="private"/>
   <property name="excludeScope" value="protected"/>
 </module>
 

This setting will report a violation if there is no javadoc for private member and ignores protected member.

 public class Test {
   private int a; // violation, missing javadoc for private member

   /**
    * Some description here
    */
   private int b; // OK
   protected int c; // OK
   public int d; // OK
   /*package*/ int e; // violation, missing javadoc for package member
 }
 

To ignore absence of Javadoc comments for variables with names log or logger:

 <module name="JavadocVariable">
   <property name="ignoreNamePattern" value="log|logger"/>
 </module>
 

This setting will report a violation if there is no javadoc for any scope member and ignores members with name log or logger.

 public class Test {
   private int a; // violation, missing javadoc for private member

   /**
    * Some description here
    */
   private int b; // OK
   protected int c; // violation, missing javadoc for protected member
   public int d; // violation, missing javadoc for public member
   /*package*/ int e; // violation, missing javadoc for package member
   private int log; // OK
   private int logger; // OK
 }
 

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Violation Message Keys:

  • javadoc.missing
Since:
3.0
  • Field Details

    • MSG_JAVADOC_MISSING

      public static final String MSG_JAVADOC_MISSING
      A key is pointing to the warning message text in "messages.properties" file.
      See Also:
    • scope

      private Scope scope
      Specify the visibility scope where Javadoc comments are checked.
    • excludeScope

      private Scope excludeScope
      Specify the visibility scope where Javadoc comments are not checked.
    • ignoreNamePattern

      private Pattern ignoreNamePattern
      Specify the regexp to define variable names to ignore.
  • Constructor Details

    • JavadocVariableCheck

      public JavadocVariableCheck()
  • Method Details

    • setScope

      public void setScope(Scope scope)
      Setter to specify the visibility scope where Javadoc comments are checked.
      Parameters:
      scope - a scope.
    • setExcludeScope

      public void setExcludeScope(Scope excludeScope)
      Setter to specify the visibility scope where Javadoc comments are not checked.
      Parameters:
      excludeScope - a scope.
    • setIgnoreNamePattern

      public void setIgnoreNamePattern(Pattern pattern)
      Setter to specify the regexp to define variable names to ignore.
      Parameters:
      pattern - a pattern.
    • getDefaultTokens

      public int[] getDefaultTokens()
      Description copied from class: AbstractCheck
      Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.
      Specified by:
      getDefaultTokens in class AbstractCheck
      Returns:
      the default tokens
      See Also:
    • getAcceptableTokens

      public int[] getAcceptableTokens()
      Description copied from class: AbstractCheck
      The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.
      Specified by:
      getAcceptableTokens in class AbstractCheck
      Returns:
      the token set this check is designed for.
      See Also:
    • getRequiredTokens

      public int[] getRequiredTokens()
      Description copied from class: AbstractCheck
      The tokens that this check must be registered for.
      Specified by:
      getRequiredTokens in class AbstractCheck
      Returns:
      the token set this must be registered for.
      See Also:
    • visitToken

      public void visitToken(DetailAST ast)
      Description copied from class: AbstractCheck
      Called to process a token.
      Overrides:
      visitToken in class AbstractCheck
      Parameters:
      ast - the token to process
    • isIgnored

      private boolean isIgnored(DetailAST ast)
      Decides whether the variable name of an AST is in the ignore list.
      Parameters:
      ast - the AST to check
      Returns:
      true if the variable name of ast is in the ignore list.
    • shouldCheck

      private boolean shouldCheck(DetailAST ast)
      Whether we should check this node.
      Parameters:
      ast - a given node.
      Returns:
      whether we should check a given node.