I uploaded a new webrev with MemberSignature converted to a builder class: 

http://cr.openjdk.java.net/~hannesw/8214126/webrev.04/

Hannes


> Am 28.05.2019 um 20:07 schrieb Jonathan Gibbons <[email protected]>:
> 
> 
> 
> On 05/28/2019 10:59 AM, Jonathan Gibbons wrote:
>> 
>> 
>> On 05/28/2019 07:04 AM, Hannes Wallnöfer wrote:
>>>  From an implementation side, I created a new HtmlTree subclass called 
>>> MemberSignatureTree as an inner class of AbstractMemberWriter that 
>>> implements the display policies listed above. It is used by all member 
>>> signature writers, simplifying the #getSignature methods in various 
>>> MemberWriter classes quite a bit.
>> 
>> Just from reading the description in this sentence, and without looking at 
>> the code yet, the style for such objects is to make them be "builder" 
>> objects ... not inheriting HtmlTree but having a "toContent" method that 
>> generates the tree when all the relevant information has been provided via 
>> set/add/put methods.
>> 
>> It makes sense to use a shared object to simplify the signature writes, but 
>> it doesn't sound right for it to be a subtype of HtmlTree, which is 
>> generally supposed to be a low level element that just has a tag, attributes 
>> and content.
>> 
>> -- Jon
> 
> 
> For examples of existing builder-style classes, see Head, Table, TableHeader.
> 
> By deferring the construction of the HtmlTree, you can relax the order in 
> which the configuration methods are called, and can wait to make decisions 
> about the generated HTML until you have total knowledge of all the component 
> parts.
> 
> -- Jon

Reply via email to