Class JavadocParagraphCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public class JavadocParagraphCheck
    extends AbstractJavadocCheck

    Checks the Javadoc paragraph.

    Checks that:

    • There is one blank line between each of two paragraphs.
    • Each paragraph but the first has <p> immediately before the first word, with no space after.
    • 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 allowNewlineParagraph - Control whether the <p> tag should be placed immediately before the first word. Type is boolean. Default value is true.

    To configure the default check:

     <module name="JavadocParagraph"/>
     

    By default, the check will report a violation if there is a new line or whitespace after the <p> tag:

     /**
      * No tag (ok).
      *
      * <p>Tag immediately before the text (ok).
      * <p>No blank line before the tag (violation).
      *
      * <p>
      * New line after tag (violation).
      *
      * <p> Whitespace after tag (violation).
      *
      */
     public class TestClass {
     }
     

    To allow newlines and spaces immediately after the <p> tag:

     <module name="JavadocParagraph">
       <property name="allowNewlineParagraph" value="false"/>
     </module>
     

    In case of allowNewlineParagraph set to false the following example will not have any violations:

     /**
      * No tag (ok).
      *
      * <p>Tag immediately before the text (ok).
      * <p>No blank line before the tag (violation).
      *
      * <p>
      * New line after tag (ok).
      *
      * <p> Whitespace after tag (ok).
      *
      */
     public class TestClass {
     }
     

    Parent is com.puppycrawl.tools.checkstyle.TreeWalker

    Violation Message Keys:

    • javadoc.missed.html.close
    • javadoc.paragraph.line.before
    • javadoc.paragraph.misplaced.tag
    • javadoc.paragraph.redundant.paragraph
    • javadoc.paragraph.tag.after
    • javadoc.parse.rule.error
    • javadoc.wrong.singleton.html.tag
    Since:
    6.0
    • Field Detail

      • MSG_TAG_AFTER

        public static final java.lang.String MSG_TAG_AFTER
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • MSG_LINE_BEFORE

        public static final java.lang.String MSG_LINE_BEFORE
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • MSG_REDUNDANT_PARAGRAPH

        public static final java.lang.String MSG_REDUNDANT_PARAGRAPH
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • MSG_MISPLACED_TAG

        public static final java.lang.String MSG_MISPLACED_TAG
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • allowNewlineParagraph

        private boolean allowNewlineParagraph
        Control whether the <p> tag should be placed immediately before the first word.
    • Constructor Detail

      • JavadocParagraphCheck

        public JavadocParagraphCheck()
    • Method Detail

      • setAllowNewlineParagraph

        public void setAllowNewlineParagraph​(boolean value)
        Setter to control whether the <p> tag should be placed immediately before the first word.
        Parameters:
        value - value to set.
      • checkEmptyLine

        private void checkEmptyLine​(DetailNode newline)
        Determines whether or not the next line after empty line has paragraph tag in the beginning.
        Parameters:
        newline - NEWLINE node.
      • checkParagraphTag

        private void checkParagraphTag​(DetailNode tag)
        Determines whether or not the line with paragraph tag has previous empty line.
        Parameters:
        tag - html tag.
      • getNearestNode

        private static DetailNode getNearestNode​(DetailNode node)
        Returns nearest node.
        Parameters:
        node - DetailNode node.
        Returns:
        nearest node.
      • isEmptyLine

        private static boolean isEmptyLine​(DetailNode newLine)
        Determines whether or not the line is empty line.
        Parameters:
        newLine - NEWLINE node.
        Returns:
        true, if line is empty line.
      • isFirstParagraph

        private static boolean isFirstParagraph​(DetailNode paragraphTag)
        Determines whether or not the line with paragraph tag is first line in javadoc.
        Parameters:
        paragraphTag - paragraph tag.
        Returns:
        true, if line with paragraph tag is first line in javadoc.
      • getNearestEmptyLine

        private static DetailNode getNearestEmptyLine​(DetailNode node)
        Finds and returns nearest empty line in javadoc.
        Parameters:
        node - DetailNode node.
        Returns:
        Some nearest empty line in javadoc.
      • isImmediatelyFollowedByText

        private static boolean isImmediatelyFollowedByText​(DetailNode tag)
        Tests whether the paragraph tag is immediately followed by the text.
        Parameters:
        tag - html tag.
        Returns:
        true, if the paragraph tag is immediately followed by the text.