Class JavadocUnclosedParagraphCheck

java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractCheck
com.qulice.checkstyle.JavadocUnclosedParagraphCheck
All Implemented Interfaces:
com.puppycrawl.tools.checkstyle.api.Configurable, com.puppycrawl.tools.checkstyle.api.Contextualizable

public final class JavadocUnclosedParagraphCheck extends com.puppycrawl.tools.checkstyle.api.AbstractCheck
Check for a Javadoc paragraph that is never closed.

A paragraph opened with <p> must be closed with </p> before the next <p> starts and before the comment ends. Leaving it open makes the reader guess where the paragraph stops, and invites the habit of "closing" it with something else, such as a bare asterisk. See #1783.

The following Javadoc will be reported as a violation, since the first paragraph is still open when the second one starts and the second one is still open when the comment ends:

 /**
  * <p>The first paragraph.
  *
  * <p>The second one.
  */
 

And this is how it should be written instead:

 /**
  * <p>The first paragraph.</p>
  *
  * <p>The second one.</p>
  */
 

The violation is reported on the line that opens the paragraph, since that is the tag left dangling. Lines inside a <pre>...</pre> block or a {@snippet ...} block are skipped, and so is the text of an inline {@code ...} or {@literal ...} tag, since a literal <p> may appear in any of them as example content rather than as a real tag.

Since:
0.73.4
  • Nested Class Summary

    Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean

    com.puppycrawl.tools.checkstyle.AbstractAutomaticBean.OutputStreamOptions
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    int[]
     
    int[]
     
    int[]
     
    void
    visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast)
     

    Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck

    beginTree, clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens

    Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter

    finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity

    Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean

    configure, contextualize, getConfiguration, setupChild

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JavadocUnclosedParagraphCheck

      public JavadocUnclosedParagraphCheck()
      Default constructor.
  • Method Details

    • getDefaultTokens

      public int[] getDefaultTokens()
      Specified by:
      getDefaultTokens in class com.puppycrawl.tools.checkstyle.api.AbstractCheck
    • getAcceptableTokens

      public int[] getAcceptableTokens()
      Specified by:
      getAcceptableTokens in class com.puppycrawl.tools.checkstyle.api.AbstractCheck
    • getRequiredTokens

      public int[] getRequiredTokens()
      Specified by:
      getRequiredTokens in class com.puppycrawl.tools.checkstyle.api.AbstractCheck
    • visitToken

      public void visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST ast)
      Overrides:
      visitToken in class com.puppycrawl.tools.checkstyle.api.AbstractCheck