On Thu, 27 Jul 2023 01:44:36 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:
> Please review a medium change that is a follow-up to recent work to clean up > 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. This pull request has now been integrated. Changeset: 402cb6a5 Author: Jonathan Gibbons <j...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/402cb6a550f60c75f93c709b5e5902f3757a8acd Stats: 793 lines in 19 files changed: 273 ins; 435 del; 85 mod 8312201: Clean up common behavior in "page writers" and "member writers" 8284447: Remove the unused NestedClassWriter interface Reviewed-by: prappo ------------- PR: https://git.openjdk.org/jdk/pull/15049