Class JavadocFormatter


  • public final class JavadocFormatter
    extends java.lang.Object
    Entry point for formatting Javadoc.

    This stateless class reads tokens from the stateful lexer and translates them to "requests" and "writes" to the stateful writer. It also munges tokens into "standardized" forms. Finally, it performs postprocessing to convert the written Javadoc to a one-liner if possible or to leave a single blank line if it's empty.

    • Field Detail

      • STANDARD_BR_TOKEN

        private static final Token STANDARD_BR_TOKEN
      • STANDARD_P_TOKEN

        private static final Token STANDARD_P_TOKEN
      • SIMPLE_TAG_PATTERN

        private static final java.util.regex.Pattern SIMPLE_TAG_PATTERN
      • ONE_CONTENT_LINE_PATTERN

        private static final java.util.regex.Pattern ONE_CONTENT_LINE_PATTERN
    • Constructor Detail

      • JavadocFormatter

        private JavadocFormatter()
    • Method Detail

      • formatJavadoc

        public static java.lang.String formatJavadoc​(java.lang.String input,
                                                     int blockIndent)
        Formats the given Javadoc comment, which must start with ∕✱✱ and end with ✱∕. The output will start and end with the same characters.
      • render

        private static java.lang.String render​(java.util.List<Token> input,
                                               int blockIndent)
      • standardizeBrToken

        private static Token standardizeBrToken​(Token token)
      • standardizePToken

        private static Token standardizePToken​(Token token)
      • standardize

        private static Token standardize​(Token token,
                                         Token standardToken)
      • makeSingleLineIfPossible

        private static java.lang.String makeSingleLineIfPossible​(int blockIndent,
                                                                 java.lang.String input)
        Returns the given string or a one-line version of it (e.g., "∕✱✱ Tests for foos. ✱∕") if it fits on one line.
      • oneLineJavadoc

        private static boolean oneLineJavadoc​(java.lang.String line,
                                              int blockIndent)