On Wed, 16 Mar 2022 16:32:09 GMT, Pavel Rappo <pra...@openjdk.org> wrote:

> This PR started in a draft mode as a refactoring effort. After a few commits 
> and chats with Jonathan Gibbons, I decided that further refactoring belongs 
> to follow-up PRs and that this PR could be marked as "Ready for review".
> 
> The motivation for the initial refactoring effort was as follows. The word 
> "tree" is heavily overloaded in the JavaDoc codebase, both in comments and 
> code. Here are some of the contexts this word appears in:  
> 
>   * Hierarchy Tree (i.e. overview-tree.html and package-tree.html)
>   * DocTree (AST nodes)
>   * ClassTree, *TreeWriter (data structures and entities related to 
> supertype-subtype relationship)
>   * HtmlTree (HTML nodes) and specifically UL/OL elements which are nested 
> lists
> 
> Sometimes contexts overlap, making the word "tree" ambiguous. To reduce this 
> ambiguity, the word "tree" should be dropped in favor of a more specific word 
> of phrase where possible.
> 
> In the case where the context is 
> `jdk.javadoc.internal.doclets.toolkit.Content`, the programmer is already 
> aware that they are dealing with trees in the sense that `Content` objects 
> support recursive composition. There's no need to have the phrase "content 
> tree" where "content" would do. Moreover, in the context that is exclusively 
> about `Content` objects, the word "content" can be dropped too, since the 
> type information is assumed.
> 
> As an example of content overlap, have a look at the source of 
> `jdk.javadoc.internal.doclets.toolkit.builders.MemberSummaryBuilder::buildSummary`.
>  This method used to needlessly mix DocTree with Content tree.

Some stats on the effects of this PR.

Before:

    $ egrep -R '(T|t)ree' src/jdk.javadoc/ | wc -l
        4448
    $ egrep -R '(C|c)ontent' src/jdk.javadoc/ | wc -l
        3934

After:

    $ egrep -R '(T|t)ree' src/jdk.javadoc/ | wc -l
        2820
    $ egrep -R '(C|c)ontent' src/jdk.javadoc/ | wc -l
        3836

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

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

Reply via email to