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

Reply via email to