Class JavadocLeadingAsteriskAlignCheck

All Implemented Interfaces:
Configurable, Contextualizable

Checks the alignment of leading asterisks in a Javadoc comment. The Check ensures that leading asterisks are aligned vertically at the number of columns to the right of the slash ( / ) of the opening Javadoc tag specified by the indentation property. By default they are aligned under the first asterisk ( * ) of opening Javadoc tag. The alignment of closing Javadoc tag ( */ ) is also checked. If a closing Javadoc tag contains non-whitespace character before it then it's alignment will be ignored. If the ending javadoc line contains a leading asterisk, then that leading asterisk's alignment will be considered, the closing Javadoc tag will be ignored. If the opening Javadoc tag line contains leading asterisks, then that line defines the expected alignment and the indentation property is not applied.

If you're using tabs then specify the the tab width in the tabWidth property.

Since:
10.18.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 indentation of leading asterisks.
      See Also:
    • javadocStartLineNumber

      Specifies the line number of starting block of the javadoc comment.
    • javadocStartColumnNumberTabsExpanded

      Specifies the column number of the slash of the opening javadoc tag with tabs expanded.
    • expectedColumnNumberTabsExpanded

      Specifies the expected column number of leading asterisks with tabs expanded.
    • fileLines

      private String[] fileLines
      Specifies the lines of the file being processed.
    • indentation

      private int indentation
      Specify the number of columns to the right of the slash ( / ) of the opening javadoc tag at which the leading asterisks are expected. A negative value expects the leading asterisks to the left of the slash ( / ).
  • Constructor Details

  • Method Details

    • setIndentation

      public void setIndentation(int indentation)
      Setter to specify the number of columns to the right of the slash ( / ) of the opening javadoc tag at which the leading asterisks are expected. A negative value expects the leading asterisks to the left of the slash ( / ).
      Parameters:
      indentation - number of columns
      Since:
      14.4.0
    • 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:
    • beginJavadocTree

      public void beginJavadocTree(DetailNode rootAst)
      Description copied from class: AbstractJavadocCheck
      Called before the starting to process a tree.
      Overrides:
      beginJavadocTree in class AbstractJavadocCheck
      Parameters:
      rootAst - the root of the tree
    • 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
    • finishJavadocTree

      public void finishJavadocTree(DetailNode rootAst)
      Description copied from class: AbstractJavadocCheck
      Called after finished processing a tree.
      Overrides:
      finishJavadocTree in class AbstractJavadocCheck
      Parameters:
      rootAst - the root of the tree
    • getAsteriskColumnNumber

      Processes and returns an OptionalInt containing the column number of leading asterisk without tabs expanded.
      Parameters:
      line - javadoc comment line
      Returns:
      asterisk's column number
    • getColumnNumberTabsExpanded

      Returns the tab-expanded, one-based column number of the leading asterisk node.
      Parameters:
      ast - leading asterisk node
      Returns:
      tab-expanded column number
    • getIndentationLevel

      private int getIndentationLevel(int columnNumberTabsExpanded)
      Converts a tab-expanded column number into an indentation level, which is the number of columns the given column is to the right of the slash ( / ) of the opening javadoc tag.
      Parameters:
      columnNumberTabsExpanded - tab-expanded column number
      Returns:
      indentation level
    • hasValidAlignment

      private static boolean hasValidAlignment(int expectedColNumber, int asteriskColNumber)
      Checks the column difference between expected column number and leading asterisk column number.
      Parameters:
      expectedColNumber - column number of javadoc starting token
      asteriskColNumber - column number of leading asterisk
      Returns:
      true if the asterisk is aligned properly, false otherwise