RFR: JDK-8280402: Add new convenience forms to HtmlTree

Jonathan Gibbons jjg at openjdk.java.net
Mon Jan 24 20:45:06 UTC 2022


On Mon, 24 Jan 2022 19:59:59 GMT, Jonathan Gibbons <jjg at openjdk.org> wrote:

>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTree.java line 240:
>> 
>>> 238:         list.forEach(item -> add(mapper.apply(item)));
>>> 239:         return this;
>>> 240:     }
>> 
>> We could move this implementation of `addAll` to the `Content` base class as it is except for changing the return type to `Content`. This would make the method available in other subclasses that override/support `add(Content)`, such as `ContentBuilder`. The only observable change would be that it wouldn't throw `UnsupportedOperationException` when called with an empty collection in non-addable classes.  I think that's an acceptable behaviour for an internal API.
>
> Another observable change would be that the method could not be used in method chaining, because of the different return type.  But having the method applicable at least in a limited form in ContentBuilder would be nice, but that suggests leaving a covariant override here.

Another reason to make a minor update ... the doc comment on the method in Content is incorrect ... the `@implSpec` is wrong.

I'll copy (not move) the implementation from `HtmlTree` to `Content`.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7166


More information about the javadoc-dev mailing list