Hi Jon,

The changes look good to me. As I said in my previous review, the separation of 
method and CSS class use is a big improvement. 

The html.*Writer classes still make be a bit uneasy. Browsing through the 
classes I found a number of unused methods, but that is not related to your 
changeset. I’ll file a new JBS issue for this. 

Hannes


> Am 01.04.2020 um 02:27 schrieb Jonathan Gibbons <jonathan.gibb...@oracle.com>:
> 
> Please review the next in the series to clean up the use of "block-list" CSS 
> class.
> 
> The previous review (JDK-8241625) handled the nested lists for the details 
> for members of a given kind. This review is for the enclosing list ... the 
> list of nested lists for members of a given kind.  The CSS class is changed 
> from "block-list" to "details-list"
> 
> The mechanism and code flow is much the same as in the previous review. 
> Starting with the builder class for each kind of member, a new method is used 
> to create a new "details list". That is passed down into the writer and 
> writer-impl, where eventually a call of `getMemberTree` is replaced by a call 
> to another new method to create a new "details list item". I've taken the 
> opportunity to restructure the code a bit when creating the details list 
> item, but the content of the details list item should be exactly the same as 
> before.
> 
> Notes:
> 
> I don't like the fact that the call to create and add a "details list item" 
> is so far removed from the call to create a "details list". This makes me 
> want to have some of these builder methods return what they build instead of 
> add it into a container.  Maybe soon...
> 
> In WriterFactoryImpl, a cast has been changed from (SubWriterHolderWriter) to 
> an appropriate WriterImpl class. The old cast was a "sideways cast", which 
> was somewhat weird. The new cast is a cast down to the impl subtype, but is 
> then widened to SubWriterHolderWriter inside the constructor that is called. 
> The use of SubWriterHolderWriter is still a bit weird, but is now a bit less 
> weird. The IDE seems to be happier as well, and better able to locate impls 
> of some of the interface methods.
> 
> In the Builder classes, I replaced a "skip if null" check from various 
> methods with a defensive Objects.requireNonNull call in the constructor.
> 
> The names of the new CSS classes can be thought of as placeholders. The point 
> is that they are new unique names, that can be easily changed if and when we 
> decide to open up the naming bikeshed.
> 
> I don't know if the benefits outweigh the "complexity", but one possibility 
> is for these lists (member list, detail list, etc) to use an abstract subtype 
> of Content such that adding items to the list would automatically wrap them 
> in <li> elements. That would cut down on some of the new methods being added, 
> since they would become instance methods on this new abstract type of content.
> 
> Coming soon:
> 
> Summary lists?
> Tables?
> 
> -- Jon
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8241895
> Webrev: http://cr.openjdk.java.net/~jjg/8241895/webrev.00/
> API: http://cr.openjdk.java.net/~jjg/8241895/api.00/
> 

Reply via email to