8240138: Cleanup HtmlTree

Reviewed-by: prappo
This commit is contained in:
Jonathan Gibbons 2020-03-11 15:46:17 -07:00
parent 6b487c3cfe
commit 5b9a09cb9c
31 changed files with 437 additions and 543 deletions

@ -177,7 +177,7 @@ public class AbstractIndexWriter extends HtmlDocletWriter {
protected void addHeading(Character uc, Content contentTree) {
String unicode = uc.toString();
Content headContent = new StringContent(unicode);
HtmlTree heading = HtmlTree.HEADING(Headings.CONTENT_HEADING, false,
HtmlTree heading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
HtmlStyle.title, headContent);
heading.setId(getNameForIndex(unicode));
contentTree.add(heading);

@ -114,7 +114,7 @@ public abstract class AbstractTreeWriter extends HtmlDocletWriter {
if (!sset.isEmpty()) {
TypeElement firstTypeElement = sset.first();
Content headingContent = contents.getContent(heading);
Content sectionHeading = HtmlTree.HEADING(Headings.CONTENT_HEADING, true,
Content sectionHeading = HtmlTree.HEADING_TITLE(Headings.CONTENT_HEADING,
headingContent);
HtmlTree htmlTree = HtmlTree.SECTION(HtmlStyle.hierarchy, sectionHeading);
addLevelInfo(!utils.isInterface(firstTypeElement) ? firstTypeElement : null,

@ -141,7 +141,7 @@ public class AllClassesIndexWriter extends HtmlDocletWriter {
}
}
Content titleContent = contents.allClassesLabel;
Content pHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content pHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, titleContent);
Content headerDiv = HtmlTree.DIV(HtmlStyle.header, pHeading);
content.add(headerDiv);

@ -82,7 +82,7 @@ public class AllPackagesIndexWriter extends HtmlDocletWriter {
Content mainContent = new ContentBuilder();
addPackages(mainContent);
Content titleContent = contents.allPackagesLabel;
Content pHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content pHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, titleContent);
Content headerDiv = HtmlTree.DIV(HtmlStyle.header, pHeading);
Content footer = HtmlTree.FOOTER();

@ -103,7 +103,7 @@ public class AnnotationTypeFieldWriterImpl extends AbstractMemberWriter
@Override
public Content getAnnotationDocTreeHeader(Element member) {
Content annotationDocTree = new ContentBuilder();
Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(name(member)));
annotationDocTree.add(heading);
return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree).setId(name(member));

@ -105,7 +105,7 @@ public class AnnotationTypeRequiredMemberWriterImpl extends AbstractMemberWriter
public Content getAnnotationDocTreeHeader(Element member) {
String simpleName = name(member);
Content annotationDocTree = new ContentBuilder();
Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(simpleName));
annotationDocTree.add(heading);
return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree)

@ -109,7 +109,7 @@ public class AnnotationTypeWriterImpl extends SubWriterHolderWriter
}
LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
LinkInfoImpl.Kind.CLASS_HEADER, annotationType);
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, new StringContent(header));
heading.add(getTypeParameterLinks(linkInfo));
div.add(heading);

@ -439,8 +439,8 @@ public class ClassUseWriter extends SubWriterHolderWriter {
headingContent.add(contents.getContent("doclet.ClassUse_Title", cltype));
headingContent.add(new HtmlTree(HtmlTag.BR));
headingContent.add(clname);
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
true, HtmlStyle.title, headingContent);
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, headingContent);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
bodyContents.setHeader(headerContent).addMainContent(div);
return bodyTree;

@ -140,7 +140,7 @@ public class ClassWriterImpl extends SubWriterHolderWriter implements ClassWrite
LinkInfoImpl.Kind.CLASS_HEADER, typeElement);
//Let's not link to ourselves in the header.
linkInfo.linkToSelf = false;
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, new StringContent(header));
heading.add(getTypeParameterLinks(linkInfo));
div.add(heading);

@ -134,11 +134,11 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements Cons
@Override
public void addContentsList(Content contentListTree) {
Content titleContent = contents.constantsSummaryTitle;
Content pHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content pHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, titleContent);
Content div = HtmlTree.DIV(HtmlStyle.header, pHeading);
Content headingContent = contents.contentsHeading;
Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.CONTENT_HEADING,
headingContent);
HtmlTree section = HtmlTree.SECTION(HtmlStyle.packages, heading);
section.add(contentListTree);
@ -167,7 +167,7 @@ public class ConstantsSummaryWriterImpl extends HtmlDocletWriter implements Cons
pkgNameContent = getPackageLabel(parsedPackageName);
}
Content headingContent = new StringContent(".*");
Content heading = HtmlTree.HEADING(Headings.ConstantsSummary.PACKAGE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.ConstantsSummary.PACKAGE_HEADING,
pkgNameContent);
heading.add(headingContent);
summaryTree = HtmlTree.SECTION(HtmlStyle.constantsSummary, heading)

@ -118,7 +118,7 @@ public class ConstructorWriterImpl extends AbstractExecutableMemberWriter
public Content getConstructorDocTreeHeader(ExecutableElement constructor) {
String erasureAnchor;
Content constructorDocTree = new ContentBuilder();
HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
HtmlTree heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(name(constructor)));
if ((erasureAnchor = getErasureAnchor(constructor)) != null) {
heading.setId(erasureAnchor);

@ -329,11 +329,11 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
*/
public Content getContentsList(DeprecatedAPIListBuilder deprapi) {
Content headContent = contents.deprecatedAPI;
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, headContent);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
Content headingContent = contents.contentsHeading;
div.add(HtmlTree.HEADING(Headings.CONTENT_HEADING, true,
div.add(HtmlTree.HEADING_TITLE(Headings.CONTENT_HEADING,
headingContent));
Content ul = new HtmlTree(HtmlTag.UL);
for (DeprElementKind kind : DeprElementKind.values()) {

@ -89,7 +89,7 @@ public class EnumConstantWriterImpl extends AbstractMemberWriter
public Content getEnumConstantsTreeHeader(VariableElement enumConstant,
Content enumConstantsDetailsTree) {
Content enumConstantsTree = new ContentBuilder();
HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
HtmlTree heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(name(enumConstant)));
enumConstantsTree.add(heading);
return HtmlTree.SECTION(HtmlStyle.detail, enumConstantsTree)

@ -90,7 +90,7 @@ public class FieldWriterImpl extends AbstractMemberWriter
@Override
public Content getFieldDocTreeHeader(VariableElement field) {
Content fieldTree = new ContentBuilder();
Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(name(field)));
fieldTree.add(heading);
return HtmlTree.SECTION(HtmlStyle.detail, fieldTree).setId(name(field));

@ -118,7 +118,7 @@ public class HelpWriter extends HtmlDocletWriter {
*/
protected void addHelpFileContents(Content contentTree) {
// Heading
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false, HtmlStyle.title,
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, HtmlStyle.title,
contents.getContent("doclet.help.main_heading"));
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
Content intro = HtmlTree.DIV(HtmlStyle.subTitle,

@ -286,30 +286,6 @@ public class HtmlDocletWriter {
private static final Pattern docrootPattern =
Pattern.compile(Pattern.quote("{@docroot}"), Pattern.CASE_INSENSITIVE);
/**
* Get the script to show or hide the All classes link.
*
* @param id id of the element to show or hide
* @return a content tree for the script
*/
public Content getAllClassesLinkScript(String id) {
Script script = new Script("<!--\n" +
" allClassesLink = document.getElementById(")
.appendStringLiteral(id)
.append(");\n" +
" if(window==top) {\n" +
" allClassesLink.style.display = \"block\";\n" +
" }\n" +
" else {\n" +
" allClassesLink.style.display = \"none\";\n" +
" }\n" +
" //-->\n");
Content div = HtmlTree.DIV(script.asContent());
Content div_noscript = HtmlTree.DIV(contents.noScriptMessage);
Content noScript = HtmlTree.NOSCRIPT(div_noscript);
div.add(noScript);
return div;
}
/**
* Add method information.

@ -104,7 +104,7 @@ public class MethodWriterImpl extends AbstractExecutableMemberWriter
public Content getMethodDocTreeHeader(ExecutableElement method) {
String erasureAnchor;
Content methodDocTree = new ContentBuilder();
HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
HtmlTree heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(name(method)));
if ((erasureAnchor = getErasureAnchor(method)) != null) {
heading.setId(erasureAnchor);

@ -201,7 +201,7 @@ public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryW
div.add(annotationContent);
Content label = mdle.isOpen() && (configuration.docEnv.getModuleMode() == ModuleMode.ALL)
? contents.openModuleLabel : contents.moduleLabel;
Content tHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content tHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, label);
tHeading.add(Entity.NO_BREAK_SPACE);
Content moduleHead = new RawHtml(heading);

@ -100,7 +100,7 @@ public class PackageTreeWriter extends AbstractTreeWriter {
Content mainContent = new ContentBuilder();
Content headContent = contents.getContent("doclet.Hierarchy_For_Package",
utils.getPackageName(packageElement));
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false,
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, headContent);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
if (configuration.packages.size() > 1) {

@ -247,7 +247,7 @@ public class PackageUseWriter extends SubWriterHolderWriter {
headingContent.add(contents.getContent("doclet.ClassUse_Title", packageText));
headingContent.add(new HtmlTree(HtmlTag.BR));
headingContent.add(name);
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, headingContent);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
bodyContents.setHeader(headerContent)

@ -120,7 +120,7 @@ public class PackageWriterImpl extends HtmlDocletWriter
Content annotationContent = new HtmlTree(HtmlTag.P);
addAnnotationInfo(packageElement, annotationContent);
div.add(annotationContent);
Content tHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content tHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, contents.packageLabel);
tHeading.add(Entity.NO_BREAK_SPACE);
Content packageHead = new StringContent(heading);

@ -82,7 +82,7 @@ public class PropertyWriterImpl extends AbstractMemberWriter
@Override
public Content getPropertyDocTreeHeader(ExecutableElement property) {
Content propertyDocTree = new ContentBuilder();
Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING,
Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.MEMBER_HEADING,
new StringContent(utils.getPropertyLabel(name(property))));
propertyDocTree.add(heading);
return HtmlTree.SECTION(HtmlStyle.detail, propertyDocTree)

@ -79,7 +79,7 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
navBar.setUserHeader(getUserHeaderFooter(true));
headerContent.add(navBar.getContent(Navigation.Position.TOP));
Content h1Content = new StringContent(header);
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, h1Content);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
bodyContents.setHeader(headerContent)
@ -117,7 +117,7 @@ public class SerializedFormWriterImpl extends SubWriterHolderWriter
*/
@Override
public Content getPackageHeader(String packageName) {
Content heading = HtmlTree.HEADING(Headings.SerializedForm.PACKAGE_HEADING, true,
Content heading = HtmlTree.HEADING_TITLE(Headings.SerializedForm.PACKAGE_HEADING,
contents.packageLabel);
heading.add(Entity.NO_BREAK_SPACE);
heading.add(packageName);

@ -118,7 +118,7 @@ public class SystemPropertiesWriter extends HtmlDocletWriter {
Content mainContent = new ContentBuilder();
addSystemProperties(mainContent);
Content titleContent = new StringContent(resources.getText("doclet.systemProperties"));
Content pHeading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, true,
Content pHeading = HtmlTree.HEADING_TITLE(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, titleContent);
Content headerDiv = HtmlTree.DIV(HtmlStyle.header, pHeading);
mainTree.add(headerDiv);

@ -108,7 +108,7 @@ public class TreeWriter extends AbstractTreeWriter {
public void generateTreeFile() throws DocFileIOException {
HtmlTree body = getTreeHeader();
Content headContent = contents.hierarchyForAllPackages;
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING, false,
Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
HtmlStyle.title, headContent);
Content div = HtmlTree.DIV(HtmlStyle.header, heading);
addPackageTreeLinks(div);

@ -27,6 +27,7 @@ package jdk.javadoc.internal.doclets.formats.html.markup;
import java.io.IOException;
import java.io.Writer;
import java.util.Objects;
import jdk.javadoc.internal.doclets.toolkit.Content;
import jdk.javadoc.internal.doclets.toolkit.util.DocletConstants;
@ -49,7 +50,7 @@ public class Comment extends Content {
* @param comment comment text for the comment
*/
public Comment(String comment) {
commentText = nullCheck(comment);
commentText = Objects.requireNonNull(comment);
}
@Override

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -30,6 +30,7 @@ import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import jdk.javadoc.internal.doclets.toolkit.Content;
@ -49,7 +50,7 @@ public class ContentBuilder extends Content {
@Override
public ContentBuilder add(Content content) {
nullCheck(content);
Objects.requireNonNull(content);
ensureMutableContents();
if (content instanceof ContentBuilder) {
contents.addAll(((ContentBuilder) content).contents);

@ -1,5 +1,5 @@
/*
* Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -60,7 +60,6 @@ public enum HtmlTag {
HR(BlockType.BLOCK, EndTag.NOEND),
HTML(BlockType.OTHER, EndTag.END),
I(BlockType.INLINE, EndTag.END),
IFRAME(BlockType.OTHER, EndTag.END),
IMG(BlockType.INLINE, EndTag.NOEND),
INPUT(BlockType.BLOCK, EndTag.NOEND),
LABEL(BlockType.INLINE, EndTag.END),

@ -208,7 +208,7 @@ public class Table extends Content {
*
* @param evenRowStyle the style to use for even-numbered rows
* @param oddRowStyle the style to use for odd-numbered rows
* @return
* @return this object
*/
public Table setStripedStyles(HtmlStyle evenRowStyle, HtmlStyle oddRowStyle) {
stripedStyles = Arrays.asList(evenRowStyle, oddRowStyle);
@ -549,8 +549,8 @@ public class Table extends Content {
}
private HtmlTree getCaption(Content title) {
return new HtmlTree(HtmlTag.CAPTION,
HtmlTree.SPAN(title),
HtmlTree.SPAN(tabEnd, Entity.NO_BREAK_SPACE));
return new HtmlTree(HtmlTag.CAPTION)
.add(HtmlTree.SPAN(title))
.add(HtmlTree.SPAN(tabEnd, Entity.NO_BREAK_SPACE));
}
}

@ -1,5 +1,5 @@
/*
* Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -124,15 +124,4 @@ public abstract class Content {
public int charCount() {
return 0;
}
/**
* Checks for null values.
*
* @param <T> the type of the item being checked
* @param t reference type to check for null values
* @return the reference type if not null or else throws a null pointer exception
*/
protected static <T> T nullCheck(T t) {
return Objects.requireNonNull(t);
}
}