RFR: JDK-8312201: Cleanup common behavior in "page writers" and "member writers"
Jonathan Gibbons
jjg at openjdk.org
Thu Jul 27 01:51:07 UTC 2023
Please review a medium change that is a follow-up to recent work to cleanup the builders and writers in the doclet.
This change is primarily focussed on cleaning up the code to generate summary tables for each kind of member. The bulk of the code is moved from `ClassWriter` to `AbstractMemberWriter`, with just a top-level loop remaining in `ClassWriter` to iterate over the different kinds of members. In addition, there is some cleanup in `WriterFactory`, renaming the factory methods and ensuring that those that are declared are used.
One result of the cleanup is that each member writer now defines and provides two methods, `buildSummary` and `buildDetails` that each create content to go on the page of the enclosing type.
This work uncovered two issues which are _not_ addressed here, and which may be addressed in future work.
1. There is a discrepancy between the lists of `VMT.Kind` used in `AbstractMemberWriter` (for the complete lists used to generate pages and the lists of `VMT.Kind` defined in `VMT.Kind` itself, which are indirectly used to generate entries in the sub-navbar for the pages of type elements. Those lists (defined as `Set`s, indirectly rely on the order in which the `VMT.Kind` members are declared, although the order itself is not specified.
2. There is an inconsistency in the subtypes of `HtmlDocletWriter`, which all generate pages, as to how those classes are invoked. It is about 50/50 whether the classes declare a `build()` method to be called from outside, or whether the classes declare a `static void generate()` method to be used instead.
--
The initial commit contains two changes to tests, copied from PR #15046. These changes will go away once that PR is approved, integrated and merged with this work.
-------------
Commit messages:
- JDK-8312201: Cleanup common behavior in "page writers" and "member writers"
Changes: https://git.openjdk.org/jdk/pull/15049/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15049&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8312201
Stats: 820 lines in 21 files changed: 302 ins; 429 del; 89 mod
Patch: https://git.openjdk.org/jdk/pull/15049.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/15049/head:pull/15049
PR: https://git.openjdk.org/jdk/pull/15049
More information about the javadoc-dev
mailing list