1616
1717import static com .google .common .base .Preconditions .checkState ;
1818import static com .google .googlejavaformat .java .javadoc .JavadocLexer .lex ;
19- import static com .google .googlejavaformat .java .javadoc .Token .Type .BR_TAG ;
20- import static com .google .googlejavaformat .java .javadoc .Token .Type .PARAGRAPH_OPEN_TAG ;
2119import static java .util .regex .Pattern .CASE_INSENSITIVE ;
2220import static java .util .regex .Pattern .compile ;
2321import static java .util .stream .Collectors .joining ;
2422
2523import com .google .common .base .CharMatcher ;
2624import com .google .common .collect .ImmutableList ;
2725import com .google .googlejavaformat .java .javadoc .JavadocLexer .LexException ;
26+ import com .google .googlejavaformat .java .javadoc .Token .BeginJavadoc ;
27+ import com .google .googlejavaformat .java .javadoc .Token .BlockquoteCloseTag ;
28+ import com .google .googlejavaformat .java .javadoc .Token .BlockquoteOpenTag ;
29+ import com .google .googlejavaformat .java .javadoc .Token .BrTag ;
30+ import com .google .googlejavaformat .java .javadoc .Token .CodeCloseTag ;
31+ import com .google .googlejavaformat .java .javadoc .Token .CodeOpenTag ;
32+ import com .google .googlejavaformat .java .javadoc .Token .EndJavadoc ;
33+ import com .google .googlejavaformat .java .javadoc .Token .FooterJavadocTagStart ;
34+ import com .google .googlejavaformat .java .javadoc .Token .ForcedNewline ;
35+ import com .google .googlejavaformat .java .javadoc .Token .HeaderCloseTag ;
36+ import com .google .googlejavaformat .java .javadoc .Token .HeaderOpenTag ;
37+ import com .google .googlejavaformat .java .javadoc .Token .HtmlComment ;
38+ import com .google .googlejavaformat .java .javadoc .Token .ListCloseTag ;
39+ import com .google .googlejavaformat .java .javadoc .Token .ListItemCloseTag ;
40+ import com .google .googlejavaformat .java .javadoc .Token .ListItemOpenTag ;
41+ import com .google .googlejavaformat .java .javadoc .Token .ListOpenTag ;
42+ import com .google .googlejavaformat .java .javadoc .Token .Literal ;
43+ import com .google .googlejavaformat .java .javadoc .Token .MoeBeginStripComment ;
44+ import com .google .googlejavaformat .java .javadoc .Token .MoeEndStripComment ;
45+ import com .google .googlejavaformat .java .javadoc .Token .OptionalLineBreak ;
46+ import com .google .googlejavaformat .java .javadoc .Token .ParagraphCloseTag ;
47+ import com .google .googlejavaformat .java .javadoc .Token .ParagraphOpenTag ;
48+ import com .google .googlejavaformat .java .javadoc .Token .PreCloseTag ;
49+ import com .google .googlejavaformat .java .javadoc .Token .PreOpenTag ;
50+ import com .google .googlejavaformat .java .javadoc .Token .SnippetBegin ;
51+ import com .google .googlejavaformat .java .javadoc .Token .SnippetEnd ;
52+ import com .google .googlejavaformat .java .javadoc .Token .TableCloseTag ;
53+ import com .google .googlejavaformat .java .javadoc .Token .TableOpenTag ;
54+ import com .google .googlejavaformat .java .javadoc .Token .Whitespace ;
2855import java .util .List ;
2956import java .util .regex .Matcher ;
3057import java .util .regex .Pattern ;
@@ -74,36 +101,39 @@ public static String formatJavadoc(String input, int blockIndent) {
74101 private static String render (List <Token > input , int blockIndent , boolean classicJavadoc ) {
75102 JavadocWriter output = new JavadocWriter (blockIndent , classicJavadoc );
76103 for (Token token : input ) {
77- switch (token . type () ) {
78- case BEGIN_JAVADOC -> output .writeBeginJavadoc ();
79- case END_JAVADOC -> {
104+ switch (token ) {
105+ case BeginJavadoc unused -> output .writeBeginJavadoc ();
106+ case EndJavadoc unused -> {
80107 output .writeEndJavadoc ();
81108 return output .toString ();
82109 }
83- case FOOTER_JAVADOC_TAG_START -> output .writeFooterJavadocTagStart (token );
84- case SNIPPET_BEGIN -> output .writeSnippetBegin (token );
85- case SNIPPET_END -> output .writeSnippetEnd (token );
86- case LIST_OPEN_TAG -> output .writeListOpen (token );
87- case LIST_CLOSE_TAG -> output .writeListClose (token );
88- case LIST_ITEM_OPEN_TAG -> output .writeListItemOpen (token );
89- case HEADER_OPEN_TAG -> output .writeHeaderOpen (token );
90- case HEADER_CLOSE_TAG -> output .writeHeaderClose (token );
91- case PARAGRAPH_OPEN_TAG -> output .writeParagraphOpen (standardizePToken (token ));
92- case BLOCKQUOTE_OPEN_TAG , BLOCKQUOTE_CLOSE_TAG -> output .writeBlockquoteOpenOrClose (token );
93- case PRE_OPEN_TAG -> output .writePreOpen (token );
94- case PRE_CLOSE_TAG -> output .writePreClose (token );
95- case CODE_OPEN_TAG -> output .writeCodeOpen (token );
96- case CODE_CLOSE_TAG -> output .writeCodeClose (token );
97- case TABLE_OPEN_TAG -> output .writeTableOpen (token );
98- case TABLE_CLOSE_TAG -> output .writeTableClose (token );
99- case MOE_BEGIN_STRIP_COMMENT -> output .requestMoeBeginStripComment (token );
100- case MOE_END_STRIP_COMMENT -> output .writeMoeEndStripComment (token );
101- case HTML_COMMENT -> output .writeHtmlComment (token );
102- case BR_TAG -> output .writeBr (standardizeBrToken (token ));
103- case WHITESPACE -> output .requestWhitespace ();
104- case FORCED_NEWLINE -> output .writeLineBreakNoAutoIndent ();
105- case LITERAL -> output .writeLiteral (token );
106- case PARAGRAPH_CLOSE_TAG , LIST_ITEM_CLOSE_TAG , OPTIONAL_LINE_BREAK -> {}
110+ case FooterJavadocTagStart t -> output .writeFooterJavadocTagStart (t );
111+ case SnippetBegin t -> output .writeSnippetBegin (t );
112+ case SnippetEnd t -> output .writeSnippetEnd (t );
113+ case ListOpenTag t -> output .writeListOpen (t );
114+ case ListCloseTag t -> output .writeListClose (t );
115+ case ListItemOpenTag t -> output .writeListItemOpen (t );
116+ case HeaderOpenTag t -> output .writeHeaderOpen (t );
117+ case HeaderCloseTag t -> output .writeHeaderClose (t );
118+ case ParagraphOpenTag t -> output .writeParagraphOpen (standardizePToken (t ));
119+ case BlockquoteOpenTag t -> output .writeBlockquoteOpenOrClose (t );
120+ case BlockquoteCloseTag t -> output .writeBlockquoteOpenOrClose (t );
121+ case PreOpenTag t -> output .writePreOpen (t );
122+ case PreCloseTag t -> output .writePreClose (t );
123+ case CodeOpenTag t -> output .writeCodeOpen (t );
124+ case CodeCloseTag t -> output .writeCodeClose (t );
125+ case TableOpenTag t -> output .writeTableOpen (t );
126+ case TableCloseTag t -> output .writeTableClose (t );
127+ case MoeBeginStripComment t -> output .requestMoeBeginStripComment (t );
128+ case MoeEndStripComment t -> output .writeMoeEndStripComment (t );
129+ case HtmlComment t -> output .writeHtmlComment (t );
130+ case BrTag t -> output .writeBr (standardizeBrToken (t ));
131+ case Whitespace unused -> output .requestWhitespace ();
132+ case ForcedNewline unused -> output .writeLineBreakNoAutoIndent ();
133+ case Literal t -> output .writeLiteral (t );
134+ case ParagraphCloseTag unused -> {}
135+ case ListItemCloseTag unused -> {}
136+ case OptionalLineBreak unused -> {}
107137 }
108138 }
109139 throw new AssertionError ();
@@ -126,8 +156,8 @@ private static Token standardize(Token token, Token standardToken) {
126156 return SIMPLE_TAG_PATTERN .matcher (token .value ()).matches () ? standardToken : token ;
127157 }
128158
129- private static final Token STANDARD_BR_TOKEN = new Token ( BR_TAG , "<br>" );
130- private static final Token STANDARD_P_TOKEN = new Token ( PARAGRAPH_OPEN_TAG , "<p>" );
159+ private static final Token STANDARD_BR_TOKEN = new BrTag ( "<br>" );
160+ private static final Token STANDARD_P_TOKEN = new ParagraphOpenTag ( "<p>" );
131161 private static final Pattern SIMPLE_TAG_PATTERN = compile ("^<\\ w+\\ s*/?\\ s*>" , CASE_INSENSITIVE );
132162
133163 private static final Pattern ONE_CONTENT_LINE_PATTERN = compile (" */[*][*]\n *[*] (.*)\n *[*]/" );
0 commit comments