Class MissingJavadocTypeCheck

All Implemented Interfaces:
Configurable, Contextualizable

Checks for missing Javadoc comments for class, enum, interface, and annotation interface definitions. The scope to verify is specified using the Scope class and defaults to Scope.PUBLIC. To verify another scope, set property scope to one of the Scope constants.
Since:
8.20
  • 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:
    • javadocComments

      private final List<DetailAST> javadocComments
      Stores all Javadoc comment nodes collected during the tree traversal. Used to match a Javadoc comment to a type declaration.
    • scope

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

      Specify the visibility scope where Javadoc comments are not checked.
    • skipAnnotations

      Specify annotations that allow missed documentation. If annotation is present in target sources in multiple forms of qualified name, all forms should be listed in this property.
  • Constructor Details

  • Method Details

    • setScope

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

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

      public void setSkipAnnotations(String... userAnnotations)
      Setter to specify annotations that allow missed documentation. If annotation is present in target sources in multiple forms of qualified name, all forms should be listed in this property.
      Parameters:
      userAnnotations - user's value.
      Since:
      8.20
    • getDefaultJavadocTokens

      public int[] getDefaultJavadocTokens()
      Description copied from class: AbstractJavadocCheck
      Returns the default javadoc token types a check is interested in.
      Specified by:
      getDefaultJavadocTokens in class AbstractJavadocCheck
      Returns:
      the default javadoc token types
      See Also:
    • visitJavadocToken

      public void visitJavadocToken(DetailNode node)
      Description copied from class: AbstractJavadocCheck
      Called to process a Javadoc token.
      Specified by:
      visitJavadocToken in class AbstractJavadocCheck
      Parameters:
      node - the token to process
    • beginTree

      public void beginTree(DetailAST node)
      Description copied from class: AbstractCheck
      Called before the starting to process a tree. Ideal place to initialize information that is to be collected whilst processing a tree.
      Overrides:
      beginTree in class AbstractJavadocCheck
      Parameters:
      node - the root of the tree
    • collectCommentNodes

      private void collectCommentNodes(DetailAST ast)
      Collects all Javadoc comment nodes in the AST tree and stores them in javadocComments. These comments are later used to determine whether a type declaration has an associated Javadoc comment.
      Parameters:
      ast - the root AST node from which comment nodes are collected
    • 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.
      Overrides:
      getDefaultTokens in class AbstractJavadocCheck
      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.
      Overrides:
      getAcceptableTokens in class AbstractJavadocCheck
      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.
      Overrides:
      getRequiredTokens in class AbstractJavadocCheck
      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 AbstractJavadocCheck
      Parameters:
      ast - the token to process
    • hasJavadoc

      private boolean hasJavadoc(DetailAST ast)
      Determines whether the specified type AST node has a valid Javadoc comment immediately preceding it, with no intervening executable code.
      Parameters:
      ast - the AST node representing the type definition
      Returns:
      true if a valid Javadoc comment exists before the type; false otherwise
    • noInterveningCode

      private static boolean noInterveningCode(DetailAST javadoc, DetailAST type)
      Checks whether there is any executable code between the Javadoc comment and the type declaration by walking AST siblings between them.
      Parameters:
      javadoc - the AST node representing the Javadoc comment
      type - the AST node representing the type declaration
      Returns:
      true if no executable code exists between them; false otherwise
    • isAllowedBetweenJavadocAndType

      private static boolean isAllowedBetweenJavadocAndType(int tokenType)
      Returns whether the given token type is permitted to appear between a Javadoc comment and a type declaration.
      Parameters:
      tokenType - the token type to check
      Returns:
      true if the token is allowed between Javadoc and a type; false otherwise
    • 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.