Class JavadocTagContinuationIndentationCheck

All Implemented Interfaces:
Configurable, Contextualizable

public class JavadocTagContinuationIndentationCheck extends AbstractJavadocCheck

Checks the indentation of the continuation lines in block tags. That is whether the continued description of at clauses should be indented or not. If the text is not properly indented it throws a violation. A continuation line is when the description starts/spans past the line with the tag. Default indentation required is at least 4, but this can be changed with the help of properties below.

  • Property violateExecutionOnNonTightHtml - Control when to print violations if the Javadoc being examined by this check violates the tight html rules defined at Tight-HTML Rules. Type is boolean. Default value is false.
  • Property offset - Specify how many spaces to use for new indentation level. Type is int. Default value is 4.

To configure the default check:

 <module name="JavadocTagContinuationIndentation"/>
 

Example:

 /**
  * @tag comment
  *  Indentation spacing is 1. Line with violation
  *   Indentation spacing is 2. Line with violation
  *     Indentation spacing is 4. OK
  */
 public class Test {
 }
 

To configure the check with two spaces indentation:

 <module name="JavadocTagContinuationIndentation">
   <property name="offset" value="2"/>
 </module>
 

Example:

 /**
  * @tag comment
  * Indentation spacing is 0. Line with violation
  *   Indentation spacing is 2. OK
  *  Indentation spacing is 1. Line with violation
  */
 public class Test {
 }
 

To configure the check to show violations for Tight-HTML Rules:

 <module name="JavadocTagContinuationIndentation">
   <property name="violateExecutionOnNonTightHtml" value="true"/>
 </module>
 

Example:

 /**
  * <p> 'p' tag is unclosed. Line with violation, this html tag needs closing tag.
  * <p> 'p' tag is closed</p>. OK
  */
 public class Test {
 }
 

Parent is com.puppycrawl.tools.checkstyle.TreeWalker

Violation Message Keys:

  • javadoc.missed.html.close
  • javadoc.parse.rule.error
  • javadoc.wrong.singleton.html.tag
  • tag.continuation.indent
Since:
6.0
  • Field Details

    • MSG_KEY

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

      private static final int DEFAULT_INDENTATION
      Default tag continuation indentation.
      See Also:
    • offset

      private int offset
      Specify how many spaces to use for new indentation level.
  • Constructor Details

    • JavadocTagContinuationIndentationCheck

      public JavadocTagContinuationIndentationCheck()
  • Method Details

    • setOffset

      public void setOffset(int offset)
      Setter to specify how many spaces to use for new indentation level.
      Parameters:
      offset - custom value.
    • 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:
    • getRequiredJavadocTokens

      public int[] getRequiredJavadocTokens()
      Description copied from class: AbstractJavadocCheck
      The javadoc tokens that this check must be registered for.
      Overrides:
      getRequiredJavadocTokens in class AbstractJavadocCheck
      Returns:
      the javadoc token set this must be registered for.
      See Also:
    • visitJavadocToken

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

      private boolean isViolation(DetailNode textNode)
      Checks if a text node meets the criteria for a violation. If the text is shorter than offset characters, then a violation is detected if the text is not blank or the next node is not a newline. If the text is longer than offset characters, then a violation is detected if any of the first offset characters are not blank.
      Parameters:
      textNode - the node to check.
      Returns:
      true if the node has a violation.
    • getAllNewlineNodes

      private static List<DetailNode> getAllNewlineNodes(DetailNode descriptionNode)
      Finds and collects all NEWLINE nodes inside DESCRIPTION node.
      Parameters:
      descriptionNode - DESCRIPTION node.
      Returns:
      List with NEWLINE nodes.
    • isInlineDescription

      private static boolean isInlineDescription(DetailNode description)
      Checks, if description node is a description of in-line tag.
      Parameters:
      description - DESCRIPTION node.
      Returns:
      true, if description node is a description of in-line tag.