--- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java 2020-01-07 15:23:36.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java 2020-01-07 15:23:35.000000000 +0100 @@ -169,10 +169,10 @@ protected void addHeading(Character uc, Content contentTree) { String unicode = uc.toString(); - contentTree.add(getMarkerAnchorForIndex(unicode)); Content headContent = new StringContent(unicode); - Content heading = HtmlTree.HEADING(Headings.CONTENT_HEADING, false, + HtmlTree heading = HtmlTree.HEADING(Headings.CONTENT_HEADING, false, HtmlStyle.title, headContent); + heading.setId(getNameForIndex(unicode)); contentTree.add(heading); } @@ -412,16 +412,6 @@ } /** - * Get the marker anchor which will be added to the index documentation tree. - * - * @param anchorNameForIndex the anchor name attribute for index page - * @return a content tree for the marker anchor - */ - public Content getMarkerAnchorForIndex(String anchorNameForIndex) { - return links.createAnchor(getNameForIndex(anchorNameForIndex)); - } - - /** * Generate a valid HTML name for member index page. * * @param unicode the string that needs to be converted to valid HTML name. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java 2020-01-07 15:23:37.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java 2020-01-07 15:23:37.000000000 +0100 @@ -153,22 +153,6 @@ public abstract void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree); /** - * Add the anchor for the summary section of the member. - * - * @param typeElement the TypeElement to be documented - * @param memberTree the content tree to which the summary anchor will be added - */ - public abstract void addSummaryAnchor(TypeElement typeElement, Content memberTree); - - /** - * Add the anchor for the inherited summary section of the member. - * - * @param typeElement the TypeElement to be documented - * @param inheritedTree the content tree to which the inherited summary anchor will be added - */ - public abstract void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree); - - /** * Add the summary type for the member. * * @param member the member to be documented --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java 2020-01-07 15:23:38.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeFieldWriterImpl.java 2020-01-07 15:23:38.000000000 +0100 @@ -70,7 +70,7 @@ memberSummaryTree.add( MarkerComments.START_OF_ANNOTATION_TYPE_FIELD_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -85,7 +85,8 @@ * {@inheritDoc} */ public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.fieldSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.fieldSummary, + SectionName.ANNOTATION_TYPE_FIELD_SUMMARY, memberSummaryTree, memberTree); } /** @@ -98,13 +99,11 @@ /** * {@inheritDoc} */ - public Content getAnnotationDetailsTreeHeader(TypeElement typeElement) { + public Content getAnnotationDetailsTreeHeader() { Content memberDetailsTree = new ContentBuilder(); if (!writer.printedAnnotationFieldHeading) { Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.fieldDetailsLabel); - memberDetailsTree.add(links.createAnchor( - SectionName.ANNOTATION_TYPE_FIELD_DETAIL)); memberDetailsTree.add(heading); writer.printedAnnotationFieldHeading = true; } @@ -114,13 +113,12 @@ /** * {@inheritDoc} */ - public Content getAnnotationDocTreeHeader(Element member, - Content annotationDetailsTree) { + public Content getAnnotationDocTreeHeader(Element member) { Content annotationDocTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); - heading.add(links.createAnchor(name(member), new StringContent(name(member)))); + Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(name(member))); annotationDocTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree); + return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree).setId(name(member)); } /** @@ -160,7 +158,8 @@ Content annotationDetails = new ContentBuilder(); annotationDetails.add(annotationDetailsTreeHeader); annotationDetails.add(annotationDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.fieldDetails, annotationDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.fieldDetails, annotationDetails) + .setId(SectionName.ANNOTATION_TYPE_FIELD_DETAIL.getName())); } /** @@ -174,7 +173,7 @@ * {@inheritDoc} */ public void addSummaryLabel(Content memberTree) { - Content label = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, + HtmlTree label = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, contents.fieldSummaryLabel); memberTree.add(label); } @@ -206,22 +205,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor( - SectionName.ANNOTATION_TYPE_FIELD_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java 2020-01-07 15:23:39.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java 2020-01-07 15:23:39.000000000 +0100 @@ -72,7 +72,7 @@ memberSummaryTree.add( MarkerComments.START_OF_ANNOTATION_TYPE_OPTIONAL_MEMBER_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -81,7 +81,8 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.memberSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.memberSummary, + SectionName.ANNOTATION_TYPE_OPTIONAL_ELEMENT_SUMMARY, memberSummaryTree, memberTree); } /** @@ -128,13 +129,4 @@ return new TableHeader(contents.modifierAndTypeLabel, contents.annotationTypeOptionalMemberLabel, contents.descriptionLabel); } - - /** - * {@inheritDoc} - */ - @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor( - SectionName.ANNOTATION_TYPE_OPTIONAL_ELEMENT_SUMMARY)); - } } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java 2020-01-07 15:23:40.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java 2020-01-07 15:23:40.000000000 +0100 @@ -71,7 +71,7 @@ memberSummaryTree.add( MarkerComments.START_OF_ANNOTATION_TYPE_REQUIRED_MEMBER_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -86,7 +86,8 @@ * {@inheritDoc} */ public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.memberSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.memberSummary, + SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY, memberSummaryTree, memberTree); } /** @@ -99,13 +100,11 @@ /** * {@inheritDoc} */ - public Content getAnnotationDetailsTreeHeader(TypeElement te) { + public Content getAnnotationDetailsTreeHeader() { Content memberDetailsTree = new ContentBuilder(); if (!writer.printedAnnotationHeading) { Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.annotationTypeDetailsLabel); - memberDetailsTree.add(links.createAnchor( - SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL)); memberDetailsTree.add(heading); writer.printedAnnotationHeading = true; } @@ -116,14 +115,14 @@ * {@inheritDoc} */ @Override - public Content getAnnotationDocTreeHeader(Element member, Content annotationDetailsTree) { + public Content getAnnotationDocTreeHeader(Element member) { String simpleName = name(member); Content annotationDocTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); - heading.add(links.createAnchor( - simpleName + utils.signature((ExecutableElement) member), new StringContent(simpleName))); + Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(simpleName)); annotationDocTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree); + return HtmlTree.SECTION(HtmlStyle.detail, annotationDocTree) + .setId(simpleName + utils.signature((ExecutableElement) member)); } /** @@ -175,7 +174,7 @@ * {@inheritDoc} */ public void addSummaryLabel(Content memberTree) { - Content label = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, + HtmlTree label = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, contents.annotateTypeRequiredMemberSummaryLabel); memberTree.add(label); } @@ -213,20 +212,6 @@ /** * {@inheritDoc} */ - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor( - SectionName.ANNOTATION_TYPE_REQUIRED_ELEMENT_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - } - - /** - * {@inheritDoc} - */ public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java 2020-01-07 15:23:41.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java 2020-01-07 15:23:41.000000000 +0100 @@ -248,4 +248,13 @@ public TypeElement getAnnotationTypeElement() { return annotationType; } + + /** + * {@inheritDoc} + */ + @Override + public Content getMemberDetailsTree(Content contentTree) { + return HtmlTree.SECTION(HtmlStyle.details, contentTree) + .setId(SectionName.ANNOTATION_TYPE_ELEMENT_DETAIL.getName()); + } } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java 2020-01-07 15:23:43.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java 2020-01-07 15:23:42.000000000 +0100 @@ -307,8 +307,7 @@ HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.setStyle(HtmlStyle.blockList); for (PackageElement pkg : pkgSet) { - Content markerAnchor = links.createAnchor(getPackageAnchorName(pkg)); - HtmlTree htmlTree = HtmlTree.SECTION(HtmlStyle.detail, markerAnchor); + HtmlTree htmlTree = HtmlTree.SECTION(HtmlStyle.detail).setId(getPackageAnchorName(pkg)); Content link = contents.getContent("doclet.ClassUse_Uses.of.0.in.1", getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, typeElement)), --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java 2020-01-07 15:23:44.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java 2020-01-07 15:23:44.000000000 +0100 @@ -175,22 +175,24 @@ @Override public void addPackageName(PackageElement pkg, Content summariesTree, boolean first) { Content pkgNameContent; + String anchorName; if (!first) { summariesTree.add(summaryTree); } if (pkg.isUnnamed()) { - summariesTree.add(links.createAnchor(SectionName.UNNAMED_PACKAGE_ANCHOR)); + anchorName = SectionName.UNNAMED_PACKAGE_ANCHOR.getName(); pkgNameContent = contents.defaultPackageLabel; } else { String parsedPackageName = utils.parsePackageName(pkg); - summariesTree.add(links.createAnchor(parsedPackageName)); + anchorName = parsedPackageName; pkgNameContent = getPackageLabel(parsedPackageName); } Content headingContent = new StringContent(".*"); Content heading = HtmlTree.HEADING(Headings.ConstantsSummary.PACKAGE_HEADING, true, pkgNameContent); heading.add(headingContent); - summaryTree = HtmlTree.SECTION(HtmlStyle.constantsSummary, heading); + summaryTree = HtmlTree.SECTION(HtmlStyle.constantsSummary, heading) + .setId(links.getName(anchorName)); } /** @@ -253,11 +255,9 @@ * @return the type column of the constant table row */ private Content getTypeColumn(VariableElement member) { - Content anchor = links.createAnchor( - currentTypeElement.getQualifiedName() + "." + member.getSimpleName()); Content typeContent = new ContentBuilder(); - typeContent.add(anchor); - Content code = new HtmlTree(HtmlTag.CODE); + String id = currentTypeElement.getQualifiedName() + "." + member.getSimpleName(); + Content code = new HtmlTree(HtmlTag.CODE).setId(id); for (Modifier mod : member.getModifiers()) { Content modifier = new StringContent(mod.toString()); code.add(modifier); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java 2020-01-07 15:23:45.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java 2020-01-07 15:23:45.000000000 +0100 @@ -97,7 +97,7 @@ Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_CONSTRUCTOR_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -106,21 +106,19 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.constructorSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.constructorSummary, + SectionName.CONSTRUCTOR_SUMMARY, memberSummaryTree, memberTree); } /** * {@inheritDoc} */ @Override - public Content getConstructorDetailsTreeHeader(TypeElement typeElement, - Content memberDetailsTree) { + public Content getConstructorDetailsTreeHeader(Content memberDetailsTree) { memberDetailsTree.add(MarkerComments.START_OF_CONSTRUCTOR_DETAILS); Content constructorDetailsTree = new ContentBuilder(); Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.constructorDetailsLabel); - constructorDetailsTree.add(links.createAnchor( - SectionName.CONSTRUCTOR_DETAIL)); constructorDetailsTree.add(heading); return constructorDetailsTree; } @@ -129,17 +127,17 @@ * {@inheritDoc} */ @Override - public Content getConstructorDocTreeHeader(ExecutableElement constructor, - Content constructorDetailsTree) { + public Content getConstructorDocTreeHeader(ExecutableElement constructor) { String erasureAnchor; Content constructorDocTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); + HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(name(constructor))); if ((erasureAnchor = getErasureAnchor(constructor)) != null) { - heading.add(links.createAnchor((erasureAnchor))); + heading.setId(erasureAnchor); } - heading.add(links.createAnchor(writer.getAnchor(constructor), new StringContent(name(constructor)))); constructorDocTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, constructorDocTree); + return HtmlTree.SECTION(HtmlStyle.detail, constructorDocTree) + .setId(links.getName(writer.getAnchor(constructor))); } /** @@ -183,7 +181,8 @@ @Override public Content getConstructorDetails(Content constructorDetailsTreeHeader, Content constructorDetailsTree) { Content constructorDetails = new ContentBuilder(constructorDetailsTreeHeader, constructorDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.constructorDetails, constructorDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.constructorDetails, constructorDetails) + .setId(SectionName.CONSTRUCTOR_DETAIL.getName())); } /** @@ -252,21 +251,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor(SectionName.CONSTRUCTOR_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java 2020-01-07 15:23:46.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java 2020-01-07 15:23:46.000000000 +0100 @@ -287,13 +287,12 @@ div.setStyle(HtmlStyle.contentContainer); for (DeprElementKind kind : DeprElementKind.values()) { if (deprapi.hasDocumentation(kind)) { - addAnchor(deprapi, kind, div); memberTableSummary = resources.getText("doclet.Member_Table_Summary", resources.getText(getHeadingKey(kind)), resources.getText(getSummaryKey(kind))); TableHeader memberTableHeader = new TableHeader( contents.getContent(getHeaderKey(kind)), contents.descriptionLabel); - addDeprecatedAPI(deprapi.getSet(kind), + addDeprecatedAPI(deprapi.getSet(kind), getAnchorName(kind), getHeadingKey(kind), memberTableSummary, memberTableHeader, div); } } @@ -347,19 +346,6 @@ } /** - * Add the anchor. - * - * @param builder the deprecated list builder - * @param kind the kind of list being documented - * @param htmlTree the content tree to which the anchor will be added - */ - private void addAnchor(DeprecatedAPIListBuilder builder, DeprElementKind kind, Content htmlTree) { - if (builder.hasDocumentation(kind)) { - htmlTree.add(links.createAnchor(getAnchorName(kind))); - } - } - - /** * Get the header for the deprecated API Listing. * * @return a content tree for the header @@ -379,18 +365,20 @@ * Add deprecated information to the documentation tree * * @param deprList list of deprecated API elements + * @param id the id attribute of the table * @param headingKey the caption for the deprecated table * @param tableSummary the summary for the deprecated table * @param tableHeader table headers for the deprecated table * @param contentTree the content tree to which the deprecated table will be added */ - protected void addDeprecatedAPI(SortedSet deprList, String headingKey, + protected void addDeprecatedAPI(SortedSet deprList, String id, String headingKey, String tableSummary, TableHeader tableHeader, Content contentTree) { if (deprList.size() > 0) { Content caption = contents.getContent(headingKey); Table table = new Table(HtmlStyle.deprecatedSummary) .setCaption(caption) .setHeader(tableHeader) + .setId(id) .setColumnStyles(HtmlStyle.colDeprecatedItemName, HtmlStyle.colLast); for (Element e : deprList) { Content link; --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java 2020-01-07 15:23:48.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java 2020-01-07 15:23:47.000000000 +0100 @@ -67,7 +67,7 @@ Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_ENUM_CONSTANT_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -76,7 +76,8 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.constantsSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.constantsSummary, + SectionName.ENUM_CONSTANT_SUMMARY, memberSummaryTree, memberTree); } /** @@ -89,8 +90,6 @@ Content enumConstantsDetailsTree = new ContentBuilder(); Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.enumConstantDetailLabel); - enumConstantsDetailsTree.add(links.createAnchor( - SectionName.ENUM_CONSTANT_DETAIL)); enumConstantsDetailsTree.add(heading); return enumConstantsDetailsTree; } @@ -102,10 +101,11 @@ public Content getEnumConstantsTreeHeader(VariableElement enumConstant, Content enumConstantsDetailsTree) { Content enumConstantsTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); - heading.add(links.createAnchor(name(enumConstant), new StringContent(name(enumConstant)))); + HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(name(enumConstant))); enumConstantsTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, enumConstantsTree); + return HtmlTree.SECTION(HtmlStyle.detail, enumConstantsTree) + .setId(name(enumConstant)); } /** @@ -150,7 +150,8 @@ Content enumConstantsDetailsTree) { Content enumConstantsDetails = new ContentBuilder(enumConstantsDetailsTreeHeader, enumConstantsDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.constantDetails, enumConstantsDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.constantDetails, enumConstantsDetails) + .setId(SectionName.ENUM_CONSTANT_DETAIL.getName())); } /** @@ -194,21 +195,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor(SectionName.ENUM_CONSTANT_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java 2020-01-07 15:23:49.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java 2020-01-07 15:23:48.000000000 +0100 @@ -70,7 +70,7 @@ Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_FIELD_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -79,20 +79,19 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.fieldSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.fieldSummary, + SectionName.FIELD_SUMMARY, memberSummaryTree, memberTree); } /** * {@inheritDoc} */ @Override - public Content getFieldDetailsTreeHeader(TypeElement typeElement, Content memberDetailsTree) { + public Content getFieldDetailsTreeHeader(Content memberDetailsTree) { memberDetailsTree.add(MarkerComments.START_OF_FIELD_DETAILS); Content fieldDetailsTree = new ContentBuilder(); Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.fieldDetailsLabel); - fieldDetailsTree.add(links.createAnchor( - SectionName.FIELD_DETAIL)); fieldDetailsTree.add(heading); return fieldDetailsTree; } @@ -101,12 +100,12 @@ * {@inheritDoc} */ @Override - public Content getFieldDocTreeHeader(VariableElement field, Content fieldDetailsTree) { + public Content getFieldDocTreeHeader(VariableElement field) { Content fieldTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); - heading.add(links.createAnchor(name(field), new StringContent(name(field)))); + Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(name(field))); fieldTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, fieldTree); + return HtmlTree.SECTION(HtmlStyle.detail, fieldTree).setId(name(field)); } /** @@ -151,7 +150,8 @@ @Override public Content getFieldDetails(Content fieldDetailsTreeHeader, Content fieldDetailsTree) { Content fieldDetails = new ContentBuilder(fieldDetailsTreeHeader, fieldDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.fieldDetails, fieldDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.fieldDetails, fieldDetails) + .setId(SectionName.FIELD_DETAIL.getName())); } /** @@ -197,24 +197,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor( - SectionName.FIELD_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - inheritedTree.add(links.createAnchor( - SectionName.FIELDS_INHERITANCE, configuration.getClassName(typeElement))); - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { Content classLink = writer.getPreQualifiedClassLink( LinkInfoImpl.Kind.MEMBER, typeElement, false); @@ -228,8 +210,10 @@ ? resources.getText("doclet.Fields_Inherited_From_Class") : resources.getText("doclet.Fields_Inherited_From_Interface")); } - Content labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, + HtmlTree labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, label); + labelHeading.setId(SectionName.FIELDS_INHERITANCE.getName() + + links.getName(configuration.getClassName(typeElement))); labelHeading.add(Entity.NO_BREAK_SPACE); labelHeading.add(classLink); inheritedTree.add(labelHeading); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java 2020-01-07 15:23:50.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java 2020-01-07 15:23:49.000000000 +0100 @@ -83,7 +83,7 @@ public Content getMemberSummaryHeader(TypeElement typeElement, Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_METHOD_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -92,19 +92,19 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.methodSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.methodSummary, + SectionName.METHOD_SUMMARY, memberSummaryTree, memberTree); } /** * {@inheritDoc} */ @Override - public Content getMethodDetailsTreeHeader(TypeElement typeElement, Content memberDetailsTree) { + public Content getMethodDetailsTreeHeader(Content memberDetailsTree) { memberDetailsTree.add(MarkerComments.START_OF_METHOD_DETAILS); Content methodDetailsTree = new ContentBuilder(); Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.methodDetailLabel); - methodDetailsTree.add(links.createAnchor(SectionName.METHOD_DETAIL)); methodDetailsTree.add(heading); return methodDetailsTree; } @@ -113,16 +113,17 @@ * {@inheritDoc} */ @Override - public Content getMethodDocTreeHeader(ExecutableElement method, Content methodDetailsTree) { + public Content getMethodDocTreeHeader(ExecutableElement method) { String erasureAnchor; Content methodDocTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); + HtmlTree heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(name(method))); if ((erasureAnchor = getErasureAnchor(method)) != null) { - heading.add(links.createAnchor((erasureAnchor))); + heading.setId(erasureAnchor); } - heading.add(links.createAnchor(writer.getAnchor(method), new StringContent(name(method)))); methodDocTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, methodDocTree); + return HtmlTree.SECTION(HtmlStyle.detail, methodDocTree) + .setId(links.getName(writer.getAnchor(method))); } /** @@ -195,7 +196,8 @@ @Override public Content getMethodDetails(Content methodDetailsTreeHeader, Content methodDetailsTree) { Content methodDetails = new ContentBuilder(methodDetailsTreeHeader, methodDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.methodDetails, methodDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.methodDetails, methodDetails) + .setId(SectionName.METHOD_DETAIL.getName())); } /** @@ -247,23 +249,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor(SectionName.METHOD_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - inheritedTree.add(links.createAnchor( - SectionName.METHODS_INHERITANCE, configuration.getClassName(typeElement))); - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { Content classLink = writer.getPreQualifiedClassLink( LinkInfoImpl.Kind.MEMBER, typeElement, false); @@ -277,8 +262,10 @@ ? resources.getText("doclet.Methods_Inherited_From_Class") : resources.getText("doclet.Methods_Inherited_From_Interface")); } - Content labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, + HtmlTree labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, label); + labelHeading.setId(SectionName.METHODS_INHERITANCE.getName() + + links.getName(configuration.getClassName(typeElement))); labelHeading.add(Entity.NO_BREAK_SPACE); labelHeading.add(classLink); inheritedTree.add(labelHeading); @@ -330,9 +317,9 @@ writer.getLink(new LinkInfoImpl(writer.configuration, context, overriddenType)); Content codeOverriddenTypeLink = HtmlTree.CODE(overriddenTypeLink); Content methlink = writer.getLink( - new LinkInfoImpl(writer.configuration, LinkInfoImpl.Kind.MEMBER, - holder) - .where(writer.links.getName(writer.getAnchor(method))).label(method.getSimpleName())); + new LinkInfoImpl(writer.configuration, LinkInfoImpl.Kind.MEMBER, holder) + .where(writer.links.getName(writer.getAnchor(method))) + .label(method.getSimpleName())); Content codeMethLink = HtmlTree.CODE(methlink); Content dd = HtmlTree.DD(codeMethLink); dd.add(Entity.NO_BREAK_SPACE); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java 2020-01-07 15:23:51.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java 2020-01-07 15:23:51.000000000 +0100 @@ -442,14 +442,12 @@ * Add the summary header. * * @param startMarker the marker comment - * @param markerAnchor the marker anchor for the section * @param heading the heading for the section * @param htmltree the content tree to which the information is added */ - public void addSummaryHeader(Content startMarker, SectionName markerAnchor, Content heading, + public void addSummaryHeader(Content startMarker, Content heading, Content htmltree) { htmltree.add(startMarker); - htmltree.add(links.createAnchor(markerAnchor)); htmltree.add(HtmlTree.HEADING(Headings.ModuleDeclaration.SUMMARY_HEADING, heading)); } @@ -496,9 +494,9 @@ TableHeader requiresTableHeader = new TableHeader(contents.modifierLabel, contents.moduleLabel, contents.descriptionLabel); - HtmlTree section = HtmlTree.SECTION(HtmlStyle.modulesSummary); - addSummaryHeader(MarkerComments.START_OF_MODULES_SUMMARY, SectionName.MODULES, - contents.navModules, section); + HtmlTree section = HtmlTree.SECTION(HtmlStyle.modulesSummary) + .setId(SectionName.MODULES.getName()); + addSummaryHeader(MarkerComments.START_OF_MODULES_SUMMARY, contents.navModules, section); if (display(requires)) { String text = resources.getText("doclet.Requires_Summary"); String tableSummary = resources.getText("doclet.Member_Table_Summary", @@ -546,9 +544,9 @@ public void addPackagesSummary(Content summaryContentTree) { if (display(packages) || display(indirectPackages) || display(indirectOpenPackages)) { - HtmlTree section = HtmlTree.SECTION(HtmlStyle.packagesSummary); - addSummaryHeader(MarkerComments.START_OF_PACKAGES_SUMMARY, SectionName.PACKAGES, - contents.navPackages, section); + HtmlTree section = HtmlTree.SECTION(HtmlStyle.packagesSummary) + .setId(SectionName.PACKAGES.getName());; + addSummaryHeader(MarkerComments.START_OF_PACKAGES_SUMMARY, contents.navPackages, section); if (display(packages)) { addPackageSummary(section); } @@ -723,9 +721,9 @@ boolean haveProvides = displayServices(provides.keySet(), providesTrees); if (haveProvides || haveUses) { - HtmlTree section = HtmlTree.SECTION(HtmlStyle.servicesSummary); - addSummaryHeader(MarkerComments.START_OF_SERVICES_SUMMARY, SectionName.SERVICES, - contents.navServices, section); + HtmlTree section = HtmlTree.SECTION(HtmlStyle.servicesSummary) + .setId(SectionName.SERVICES.getName()); + addSummaryHeader(MarkerComments.START_OF_SERVICES_SUMMARY, contents.navServices, section); TableHeader usesProvidesTableHeader = new TableHeader(contents.typeLabel, contents.descriptionLabel); if (haveProvides) { @@ -850,10 +848,10 @@ @Override public void addModuleDescription(Content moduleContentTree) { if (!utils.getFullBody(mdle).isEmpty()) { - Content tree = HtmlTree.SECTION(HtmlStyle.moduleDescription); + HtmlTree tree = HtmlTree.SECTION(HtmlStyle.moduleDescription); + tree.setId(SectionName.MODULE_DESCRIPTION.getName()); addDeprecationInfo(tree); tree.add(MarkerComments.START_OF_MODULE_DESCRIPTION); - tree.add(links.createAnchor(SectionName.MODULE_DESCRIPTION)); addInlineComment(mdle, tree); moduleContentTree.add(tree); } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java 2020-01-07 15:23:52.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java 2020-01-07 15:23:52.000000000 +0100 @@ -68,7 +68,7 @@ Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_NESTED_CLASS_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -77,7 +77,8 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.nestedClassSummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.nestedClassSummary, + SectionName.NESTED_CLASS_SUMMARY, memberSummaryTree, memberTree); } /** @@ -117,25 +118,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor( - SectionName.NESTED_CLASS_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - inheritedTree.add(links.createAnchor( - SectionName.NESTED_CLASSES_INHERITANCE, - utils.getFullyQualifiedName(typeElement))); - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { Content classLink = writer.getPreQualifiedClassLink( LinkInfoImpl.Kind.MEMBER, typeElement, false); @@ -149,7 +131,9 @@ ? resources.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Interface") : resources.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Class")); } - Content labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, label); + HtmlTree labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.SUMMARY_HEADING, label); + labelHeading.setId(SectionName.NESTED_CLASSES_INHERITANCE.getName() + + links.getName(utils.getFullyQualifiedName(typeElement))); labelHeading.add(Entity.NO_BREAK_SPACE); labelHeading.add(classLink); inheritedTree.add(labelHeading); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java 2020-01-07 15:23:55.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java 2020-01-07 15:23:54.000000000 +0100 @@ -198,8 +198,8 @@ ul.setStyle(HtmlStyle.blockList); for (String packageName : usingPackageToUsedClasses.keySet()) { PackageElement usingPackage = utils.elementUtils.getPackageElement(packageName); - HtmlTree section = HtmlTree.SECTION(HtmlStyle.detail); - section.add(links.createAnchor(getPackageAnchorName(usingPackage))); + HtmlTree section = HtmlTree.SECTION(HtmlStyle.detail) + .setId(getPackageAnchorName(usingPackage)); String tableSummary = resources.getText("doclet.Use_Table_Summary", resources.getText("doclet.classes")); Content caption = contents.getContent( --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java 2020-01-07 15:23:58.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java 2020-01-07 15:23:57.000000000 +0100 @@ -278,8 +278,8 @@ @Override public void addPackageDescription(Content packageContentTree) { if (!utils.getBody(packageElement).isEmpty()) { - Content tree = sectionTree; - tree.add(links.createAnchor(SectionName.PACKAGE_DESCRIPTION)); + HtmlTree tree = sectionTree; + tree.setId(SectionName.PACKAGE_DESCRIPTION.getName()); addDeprecationInfo(tree); addInlineComment(packageElement, tree); } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java 2020-01-07 15:23:59.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java 2020-01-07 15:23:59.000000000 +0100 @@ -62,7 +62,7 @@ public Content getMemberSummaryHeader(TypeElement typeElement, Content memberSummaryTree) { memberSummaryTree.add(MarkerComments.START_OF_PROPERTY_SUMMARY); Content memberTree = new ContentBuilder(); - writer.addSummaryHeader(this, typeElement, memberTree); + writer.addSummaryHeader(this, memberTree); return memberTree; } @@ -71,20 +71,19 @@ */ @Override public void addMemberTree(Content memberSummaryTree, Content memberTree) { - writer.addMemberTree(HtmlStyle.propertySummary, memberSummaryTree, memberTree); + writer.addMemberTree(HtmlStyle.propertySummary, + SectionName.PROPERTY_SUMMARY, memberSummaryTree, memberTree); } /** * {@inheritDoc} */ @Override - public Content getPropertyDetailsTreeHeader(TypeElement typeElement, - Content memberDetailsTree) { + public Content getPropertyDetailsTreeHeader(Content memberDetailsTree) { memberDetailsTree.add(MarkerComments.START_OF_PROPERTY_DETAILS); Content propertyDetailsTree = new ContentBuilder(); Content heading = HtmlTree.HEADING(Headings.TypeDeclaration.DETAILS_HEADING, contents.propertyDetailsLabel); - propertyDetailsTree.add(links.createAnchor(SectionName.PROPERTY_DETAIL)); propertyDetailsTree.add(heading); return propertyDetailsTree; } @@ -93,14 +92,13 @@ * {@inheritDoc} */ @Override - public Content getPropertyDocTreeHeader(ExecutableElement property, - Content propertyDetailsTree) { + public Content getPropertyDocTreeHeader(ExecutableElement property) { Content propertyDocTree = new ContentBuilder(); - Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING); - heading.add(links.createAnchor(name(property), - new StringContent(utils.getPropertyLabel(name(property))))); + Content heading = new HtmlTree(Headings.TypeDeclaration.MEMBER_HEADING, + new StringContent(utils.getPropertyLabel(name(property)))); propertyDocTree.add(heading); - return HtmlTree.SECTION(HtmlStyle.detail, propertyDocTree); + return HtmlTree.SECTION(HtmlStyle.detail, propertyDocTree) + .setId(name(property)); } /** @@ -164,7 +162,8 @@ @Override public Content getPropertyDetails(Content propertyDetailsTreeHeader, Content propertyDetailsTree) { Content propertyDetails = new ContentBuilder(propertyDetailsTreeHeader, propertyDetailsTree); - return getMemberTree(HtmlTree.SECTION(HtmlStyle.propertyDetails, propertyDetails)); + return getMemberTree(HtmlTree.SECTION(HtmlStyle.propertyDetails, propertyDetails) + .setId(SectionName.PROPERTY_DETAIL.getName())); } /** @@ -210,24 +209,6 @@ * {@inheritDoc} */ @Override - public void addSummaryAnchor(TypeElement typeElement, Content memberTree) { - memberTree.add(links.createAnchor(SectionName.PROPERTY_SUMMARY)); - } - - /** - * {@inheritDoc} - */ - @Override - public void addInheritedSummaryAnchor(TypeElement typeElement, Content inheritedTree) { - inheritedTree.add(links.createAnchor( - SectionName.PROPERTIES_INHERITANCE, - configuration.getClassName(typeElement))); - } - - /** - * {@inheritDoc} - */ - @Override public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) { Content classLink = writer.getPreQualifiedClassLink( LinkInfoImpl.Kind.MEMBER, typeElement, false); @@ -241,8 +222,10 @@ ? resources.getText("doclet.Properties_Inherited_From_Class") : resources.getText("doclet.Properties_Inherited_From_Interface")); } - Content labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, + HtmlTree labelHeading = HtmlTree.HEADING(Headings.TypeDeclaration.INHERITED_SUMMARY_HEADING, label); + labelHeading.setId(SectionName.PROPERTIES_INHERITANCE.getName() + + links.getName(configuration.getClassName(typeElement))); labelHeading.add(Entity.NO_BREAK_SPACE); labelHeading.add(classLink); inheritedTree.add(labelHeading); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriterImpl.java 2020-01-07 15:24:01.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriterImpl.java 2020-01-07 15:24:01.000000000 +0100 @@ -153,8 +153,8 @@ ? getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.DEFAULT, typeElement) .label(configuration.getClassName(typeElement))) : new StringContent(utils.getFullyQualifiedName(typeElement)); - Content section = HtmlTree.SECTION(HtmlStyle.serializedClassDetails, links.createAnchor( - utils.getFullyQualifiedName(typeElement))); + Content section = HtmlTree.SECTION(HtmlStyle.serializedClassDetails) + .setId(utils.getFullyQualifiedName(typeElement)); Content superClassLink = typeElement.getSuperclass() != null ? getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.SERIALIZED_FORM, typeElement.getSuperclass())) --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java 2020-01-07 15:24:03.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java 2020-01-07 15:24:02.000000000 +0100 @@ -320,7 +320,7 @@ */ private void addLine(Content pre, String line, int currentLineNo) { if (line != null) { - Content anchor = HtmlTree.A_ID( + Content anchor = HtmlTree.SPAN_ID( "line." + Integer.toString(currentLineNo), new StringContent(utils.replaceTabs(line))); pre.add(anchor); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SubWriterHolderWriter.java 2020-01-07 15:24:06.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SubWriterHolderWriter.java 2020-01-07 15:24:05.000000000 +0100 @@ -69,12 +69,9 @@ * Add the summary header. * * @param mw the writer for the member being documented - * @param typeElement the type element to be documented * @param memberTree the content tree to which the summary header will be added */ - public void addSummaryHeader(AbstractMemberWriter mw, TypeElement typeElement, - Content memberTree) { - mw.addSummaryAnchor(typeElement, memberTree); + public void addSummaryHeader(AbstractMemberWriter mw, Content memberTree) { mw.addSummaryLabel(memberTree); } @@ -88,7 +85,6 @@ public void addInheritedSummaryHeader(AbstractMemberWriter mw, TypeElement typeElement, Content inheritedTree) { mw.addInheritedSummaryLabel(typeElement, inheritedTree); - mw.addInheritedSummaryAnchor(typeElement, inheritedTree); } /** @@ -221,13 +217,15 @@ } /** - * Adds the member tree with css style. + * Adds the member tree with css style and id attribute. * @param style the css style to be applied to member tree + * @param sectionName the section name to use for the section id attribute * @param memberSummaryTree the content tree representing the member summary * @param memberTree the content tree representing the member */ - public void addMemberTree(HtmlStyle style, Content memberSummaryTree, Content memberTree) { - HtmlTree htmlTree = HtmlTree.SECTION(style, memberTree); + public void addMemberTree(HtmlStyle style, SectionName sectionName, Content memberSummaryTree, Content memberTree) { + HtmlTree htmlTree = HtmlTree.SECTION(style, memberTree) + .setId(sectionName.getName()); memberSummaryTree.add(getMemberTree(htmlTree)); } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java 2020-01-07 15:24:10.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java 2020-01-07 15:24:09.000000000 +0100 @@ -200,7 +200,7 @@ boolean defineID = (element.getKind() == ElementKind.RECORD) && (paramTag instanceof ParamTree) && !((ParamTree) paramTag).isTypeParameter(); Content nameTree = new StringContent(paramName); - body.add(HtmlTree.CODE(defineID ? HtmlTree.A_ID("param-" + paramName, nameTree) : nameTree)); + body.add(HtmlTree.CODE(defineID ? HtmlTree.SPAN_ID("param-" + paramName, nameTree) : nameTree)); body.add(" - "); List description = ch.getDescription(configuration, paramTag); body.add(htmlWriter.commentTagsToContent(paramTag, element, description, false, inSummary)); @@ -427,7 +427,7 @@ if (count > 0) { anchorName += "-" + count; } - result = HtmlTree.A_ID(HtmlStyle.searchTagResult, anchorName, new StringContent(tagText)); + result = HtmlTree.SPAN(anchorName, HtmlStyle.searchTagResult, new StringContent(tagText)); if (configuration.createindex && !tagText.isEmpty()) { SearchIndexItem si = new SearchIndexItem(); si.setSystemProperty(isSystemProperty); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTree.java 2020-01-07 15:24:13.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTree.java 2020-01-07 15:24:12.000000000 +0100 @@ -103,6 +103,17 @@ } /** + * Sets the "id" attribute for this tag. + * + * @param id the value for the id attribute + * @return this object + */ + public HtmlTree setId(String id) { + put(HtmlAttr.ID, id); + return this; + } + + /** * Sets the "title" attribute for this tag. * Any HTML tags in the content will be removed. * @@ -268,35 +279,6 @@ } /** - * Generates an HTML anchor tag with id attribute and a body. - * - * @param id id for the anchor tag - * @param body body for the anchor tag - * @return an HtmlTree object - */ - public static HtmlTree A_ID(String id, Content body) { - HtmlTree htmltree = new HtmlTree(HtmlTag.A); - htmltree.put(HtmlAttr.ID, nullCheck(id)); - htmltree.add(nullCheck(body)); - return htmltree; - } - - /** - * Generates an HTML anchor tag with a style class, id attribute and a body. - * - * @param styleClass stylesheet class for the tag - * @param id id for the anchor tag - * @param body body for the anchor tag - * @return an HtmlTree object - */ - public static HtmlTree A_ID(HtmlStyle styleClass, String id, Content body) { - HtmlTree htmltree = A_ID(id, body); - if (styleClass != null) - htmltree.setStyle(styleClass); - return htmltree; - } - - /** * Generates a CAPTION tag with some content. * * @param body content for the tag @@ -733,6 +715,19 @@ } /** + * Generates an SPAN tag with id attribute and a body. + * + * @param id id for the tag + * @param body body for the tag + * @return an HtmlTree object for the SPAN tag + */ + public static HtmlTree SPAN_ID(String id, Content body) { + HtmlTree htmltree = new HtmlTree(HtmlTag.SPAN, nullCheck(body)); + htmltree.put(HtmlAttr.ID, nullCheck(id)); + return htmltree; + } + + /** * Generates a SPAN tag with id and style class attributes. It also encloses * a content. * @@ -946,6 +941,8 @@ case SCRIPT : return ((hasAttr(HtmlAttr.TYPE) && hasAttr(HtmlAttr.SRC) && !hasContent()) || (hasAttr(HtmlAttr.TYPE) && hasContent())); + case SPAN : + return (hasAttr(HtmlAttr.ID) || hasContent()); default : return hasContent(); } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Links.java 2020-01-07 15:24:15.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Links.java 2020-01-07 15:24:15.000000000 +0100 @@ -61,51 +61,6 @@ } /** - * Creates an anchor of the form {@code }. - * - * @param name the value for the {@code id} or {@code name} attribute - * @return a content tree for the anchor - */ - public Content createAnchor(String name) { - return createAnchor(getName(name), null); - } - - /** - * Creates an anchor of the form {@code }. - * - * @param sectionName the value for the {@code id} or {@code name} attribute - * @return a content tree for the anchor - */ - public Content createAnchor(SectionName sectionName) { - return createAnchor(sectionName.getName(), null); - } - - /** - * Creates an anchor of the form {@code }. - * - * @param sectionName the first part of the value for the {@code id} or {@code name} attribute - * @param name the second part of the value for the {@code id} or {@code name} attribute - * @return a content tree for the anchor - */ - public Content createAnchor(SectionName sectionName, String name) { - return createAnchor(sectionName.getName() + getName(name), null); - } - - /** - * Creates an anchor of the form {@code content}. - * - * @param name the value for the {@code id} or {@code name} attribute - * @param content the content that should be added to the anchor, - * or null, to use an empty comment - * @return a content tree for the marker anchor - */ - public Content createAnchor(String name, Content content) { - return HtmlTree.A_ID(getName(name), (content == null ? EMPTY_COMMENT : content)); - } - - private static final Content EMPTY_COMMENT = new Comment(" "); - - /** * Creates a link of the form {@code label}. * * @param where the position of the link in the file --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java 2020-01-07 15:24:18.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java 2020-01-07 15:24:17.000000000 +0100 @@ -24,12 +24,9 @@ */ package jdk.javadoc.internal.doclets.formats.html.markup; -import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.SortedSet; @@ -79,12 +76,13 @@ private boolean displaySummaryModulesLink; private boolean displaySummaryPackagesLink; private boolean displaySummaryServicesLink; - private final Map> topBottomNavContents; private Content userHeader; private Content userFooter; private final String rowListTitle; private final Content searchLabel; + private static final Content EMPTY_COMMENT = new Comment(" "); + public enum PageMode { ALLCLASSES, ALLPACKAGES, @@ -141,41 +139,8 @@ this.path = path; this.pathToRoot = path.parent().invert(); this.links = new Links(path); - this.topBottomNavContents = new HashMap<>(); this.rowListTitle = configuration.getResources().getText("doclet.Navigation"); this.searchLabel = contents.getContent("doclet.search"); - populateNavContents(Position.TOP); - populateNavContents(Position.BOTTOM); - } - - /** - * Populate the navigation contents for top and bottom navigation - * - * @param position the position of the navigation bar on the page - */ - private void populateNavContents(Position position) { - Deque queue = new ArrayDeque<>(); - Content skipNavLinks = contents.getContent("doclet.Skip_navigation_links"); - switch (position) { - case TOP: - queue.addLast(links.createAnchor(SectionName.NAVBAR_TOP)); - queue.addLast(links.createLink(SectionName.SKIP_NAVBAR_TOP, skipNavLinks, - skipNavLinks.toString(), "")); - queue.addLast(links.createAnchor(SectionName.NAVBAR_TOP_FIRSTROW)); - queue.addLast(links.createAnchor(SectionName.SKIP_NAVBAR_TOP)); - topBottomNavContents.put(position, queue); - break; - case BOTTOM: - queue.addLast(links.createAnchor(SectionName.NAVBAR_BOTTOM)); - queue.addLast(links.createLink(SectionName.SKIP_NAVBAR_BOTTOM, skipNavLinks, - skipNavLinks.toString(), "")); - queue.addLast(links.createAnchor(SectionName.NAVBAR_BOTTOM_FIRSTROW)); - queue.addLast(links.createAnchor(SectionName.SKIP_NAVBAR_BOTTOM)); - topBottomNavContents.put(position, queue); - break; - default: - break; - } } public Navigation setNavLinkModule(Content navLinkModule) { @@ -946,23 +911,27 @@ if (configuration.nonavbar) { return new ContentBuilder(); } - Deque queue; Content tree = HtmlTree.NAV(); HtmlTree navDiv = new HtmlTree(HtmlTag.DIV); + Content skipNavLinks = contents.getContent("doclet.Skip_navigation_links"); if (top) { - queue = topBottomNavContents.get(Position.TOP); tree.add(Position.TOP.startOfNav()); - navDiv.setStyle(HtmlStyle.topNav); + navDiv.setStyle(HtmlStyle.topNav) + .setId(SectionName.NAVBAR_TOP.getName()) + .add(HtmlTree.DIV(HtmlStyle.skipNav, + links.createLink(SectionName.SKIP_NAVBAR_TOP, skipNavLinks, + skipNavLinks.toString(), ""))); } else { - queue = topBottomNavContents.get(Position.BOTTOM); tree.add(Position.BOTTOM.startOfNav()); - navDiv.setStyle(HtmlStyle.bottomNav); + navDiv.setStyle(HtmlStyle.bottomNav) + .setId(SectionName.NAVBAR_BOTTOM.getName()) + .add(HtmlTree.DIV(HtmlStyle.skipNav, + links.createLink(SectionName.SKIP_NAVBAR_BOTTOM, skipNavLinks, + skipNavLinks.toString(), ""))); } - navDiv.add(queue.poll()); - HtmlTree skipLinkDiv = HtmlTree.DIV(HtmlStyle.skipNav, queue.poll()); - navDiv.add(skipLinkDiv); - navDiv.add(queue.poll()); HtmlTree navList = new HtmlTree(HtmlTag.UL); + navList.setId(top ? SectionName.NAVBAR_TOP_FIRSTROW.getName() + : SectionName.NAVBAR_BOTTOM_FIRSTROW.getName()); navList.setStyle(HtmlStyle.navList); navList.put(HtmlAttr.TITLE, rowListTitle); addMainNavLinks(navList); @@ -990,10 +959,12 @@ tree.add(subDiv); if (top) { tree.add(Position.TOP.endOfNav()); - tree.add(HtmlTree.DIV(HtmlStyle.skipNav, queue.poll())); + tree.add(HtmlTree.SPAN(HtmlStyle.skipNav, EMPTY_COMMENT) + .setId(SectionName.SKIP_NAVBAR_TOP.getName())); } else { - tree.add(queue.poll()); tree.add(Position.BOTTOM.endOfNav()); + tree.add(HtmlTree.SPAN(HtmlStyle.skipNav, EMPTY_COMMENT) + .setId(SectionName.SKIP_NAVBAR_BOTTOM.getName())); } return tree; } --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java 2020-01-07 15:24:21.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Table.java 2020-01-07 15:24:20.000000000 +0100 @@ -77,6 +77,7 @@ private final List bodyRows; private final List bodyRowMasks; private String rowIdPrefix = "i"; + private String id; /** * Creates a builder for an HTML table. @@ -277,6 +278,17 @@ } /** + * Sets the id attribute of the table. + * + * @param id the id + * @return this object + */ + public Table setId(String id) { + this.id = id; + return this; + } + + /** * Add a row of data to the table. * Each item of content should be suitable for use as the content of a * {@code } or {@code } cell. @@ -396,6 +408,9 @@ public Content toContent() { HtmlTree mainDiv = new HtmlTree(HtmlTag.DIV); mainDiv.setStyle(tableStyle); + if (id != null) { + mainDiv.setId(id); + } HtmlTree table = new HtmlTree(HtmlTag.TABLE); if (tabMap == null || tabs.size() == 1) { if (tabMap == null) { --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeFieldWriter.java 2020-01-07 15:24:24.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeFieldWriter.java 2020-01-07 15:24:23.000000000 +0100 @@ -56,18 +56,17 @@ /** * Add the annotation type details tree header. * - * @param typeElement the annotation type being documented + * @return content tree for the annotation details header */ - Content getAnnotationDetailsTreeHeader(TypeElement typeElement); + Content getAnnotationDetailsTreeHeader(); /** * Get the annotation type documentation tree header. * * @param member the annotation type being documented - * @param annotationDetailsTree the content tree representing annotation type details * @return content tree for the annotation type documentation header */ - Content getAnnotationDocTreeHeader(Element member, Content annotationDetailsTree); + Content getAnnotationDocTreeHeader(Element member); /** * Get the annotation type details tree. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeRequiredMemberWriter.java 2020-01-07 15:24:28.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AnnotationTypeRequiredMemberWriter.java 2020-01-07 15:24:27.000000000 +0100 @@ -56,18 +56,17 @@ /** * Add the annotation type details tree header. * - * @param typeElement the annotation type being documented + * @return content tree for the annotation details header */ - Content getAnnotationDetailsTreeHeader(TypeElement typeElement); + Content getAnnotationDetailsTreeHeader(); /** * Get the annotation type documentation tree header. * * @param member the annotation type being documented - * @param annotationDetailsTree the content tree representing annotation type details * @return content tree for the annotation type documentation header */ - Content getAnnotationDocTreeHeader(Element member, Content annotationDetailsTree); + Content getAnnotationDocTreeHeader(Element member); /** * Get the annotation type details tree. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java 2020-01-07 15:24:31.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java 2020-01-07 15:24:30.000000000 +0100 @@ -42,22 +42,18 @@ /** * Get the constructor details tree header. * - * @param typeElement the class being documented * @param memberDetailsTree the content tree representing member details * @return content tree for the constructor details header */ - Content getConstructorDetailsTreeHeader(TypeElement typeElement, - Content memberDetailsTree); + Content getConstructorDetailsTreeHeader(Content memberDetailsTree); /** * Get the constructor documentation tree header. * * @param constructor the constructor being documented - * @param constructorDetailsTree the content tree representing constructor details * @return content tree for the constructor documentation header */ - Content getConstructorDocTreeHeader(ExecutableElement constructor, - Content constructorDetailsTree); + Content getConstructorDocTreeHeader(ExecutableElement constructor); /** * Get the signature for the given constructor. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java 2020-01-07 15:24:34.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/FieldWriter.java 2020-01-07 15:24:33.000000000 +0100 @@ -43,20 +43,18 @@ /** * Get the field details tree header. * - * @param typeElement the class being documented * @param memberDetailsTree the content tree representing member details * @return content tree for the field details header */ - Content getFieldDetailsTreeHeader(TypeElement typeElement, Content memberDetailsTree); + Content getFieldDetailsTreeHeader(Content memberDetailsTree); /** * Get the field documentation tree header. * * @param field the constructor being documented - * @param fieldDetailsTree the content tree representing field details * @return content tree for the field documentation header */ - Content getFieldDocTreeHeader(VariableElement field, Content fieldDetailsTree); + Content getFieldDocTreeHeader(VariableElement field); /** * Get the signature for the given field. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java 2020-01-07 15:24:36.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java 2020-01-07 15:24:35.000000000 +0100 @@ -43,20 +43,18 @@ /** * Get the method details tree header. * - * @param typeElement the class being documented * @param memberDetailsTree the content tree representing member details * @return content tree for the method details header */ - Content getMethodDetailsTreeHeader(TypeElement typeElement, Content memberDetailsTree); + Content getMethodDetailsTreeHeader(Content memberDetailsTree); /** * Get the method documentation tree header. * * @param method the method being documented - * @param methodDetailsTree the content tree representing method details * @return content tree for the method documentation header */ - Content getMethodDocTreeHeader(ExecutableElement method, Content methodDetailsTree); + Content getMethodDocTreeHeader(ExecutableElement method); /** * Get the signature for the given method. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyWriter.java 2020-01-07 15:24:37.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyWriter.java 2020-01-07 15:24:37.000000000 +0100 @@ -42,22 +42,18 @@ /** * Get the property details tree header. * - * @param typeElement the class being documented * @param memberDetailsTree the content tree representing member details * @return content tree for the property details header */ - Content getPropertyDetailsTreeHeader(TypeElement typeElement, - Content memberDetailsTree); + Content getPropertyDetailsTreeHeader(Content memberDetailsTree); /** * Get the property documentation tree header. * * @param property the property being documented - * @param propertyDetailsTree the content tree representing property details * @return content tree for the property documentation header */ - Content getPropertyDocTreeHeader(ExecutableElement property, - Content propertyDetailsTree); + Content getPropertyDocTreeHeader(ExecutableElement property); /** * Get the signature for the given property. --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java 2020-01-07 15:24:39.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java 2020-01-07 15:24:39.000000000 +0100 @@ -137,13 +137,12 @@ } if (hasMembersToDocument()) { writer.addAnnotationFieldDetailsMarker(memberDetailsTree); - Content annotationDetailsTreeHeader = writer.getAnnotationDetailsTreeHeader(typeElement); + Content annotationDetailsTreeHeader = writer.getAnnotationDetailsTreeHeader(); Content detailsTree = writer.getMemberTreeHeader(); for (Element member : members) { currentMember = member; - Content annotationDocTree = writer.getAnnotationDocTreeHeader(currentMember, - detailsTree); + Content annotationDocTree = writer.getAnnotationDocTreeHeader(currentMember); buildSignature(annotationDocTree); buildDeprecationInfo(annotationDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java 2020-01-07 15:24:41.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java 2020-01-07 15:24:41.000000000 +0100 @@ -139,13 +139,12 @@ } if (hasMembersToDocument()) { writer.addAnnotationDetailsMarker(memberDetailsTree); - Content annotationDetailsTreeHeader = writer.getAnnotationDetailsTreeHeader(typeElement); + Content annotationDetailsTreeHeader = writer.getAnnotationDetailsTreeHeader(); Content detailsTree = writer.getMemberTreeHeader(); for (Element member : members) { currentMember = member; - Content annotationDocTree = writer.getAnnotationDocTreeHeader( - currentMember, detailsTree); + Content annotationDocTree = writer.getAnnotationDocTreeHeader(currentMember); buildAnnotationTypeMemberChildren(annotationDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstructorBuilder.java 2020-01-07 15:24:43.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstructorBuilder.java 2020-01-07 15:24:42.000000000 +0100 @@ -132,13 +132,12 @@ return; } if (hasMembersToDocument()) { - Content constructorDetailsTreeHeader = writer.getConstructorDetailsTreeHeader(typeElement, - memberDetailsTree); + Content constructorDetailsTreeHeader = writer.getConstructorDetailsTreeHeader(memberDetailsTree); Content constructorDetailsTree = writer.getMemberTreeHeader(); for (Element constructor : constructors) { currentConstructor = (ExecutableElement)constructor; - Content constructorDocTree = writer.getConstructorDocTreeHeader(currentConstructor, constructorDetailsTree); + Content constructorDocTree = writer.getConstructorDocTreeHeader(currentConstructor); buildSignature(constructorDocTree); buildDeprecationInfo(constructorDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/FieldBuilder.java 2020-01-07 15:24:45.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/FieldBuilder.java 2020-01-07 15:24:44.000000000 +0100 @@ -122,12 +122,12 @@ return; } if (!fields.isEmpty()) { - Content fieldDetailsTreeHeader = writer.getFieldDetailsTreeHeader(typeElement, memberDetailsTree); + Content fieldDetailsTreeHeader = writer.getFieldDetailsTreeHeader(memberDetailsTree); Content fieldDetailsTree = writer.getMemberTreeHeader(); for (Element element : fields) { currentElement = (VariableElement)element; - Content fieldDocTree = writer.getFieldDocTreeHeader(currentElement, fieldDetailsTree); + Content fieldDocTree = writer.getFieldDocTreeHeader(currentElement); buildSignature(fieldDocTree); buildDeprecationInfo(fieldDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MethodBuilder.java 2020-01-07 15:24:46.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MethodBuilder.java 2020-01-07 15:24:46.000000000 +0100 @@ -123,13 +123,12 @@ return; } if (hasMembersToDocument()) { - Content methodDetailsTreeHeader = writer.getMethodDetailsTreeHeader(typeElement, - memberDetailsTree); + Content methodDetailsTreeHeader = writer.getMethodDetailsTreeHeader(memberDetailsTree); Content methodDetailsTree = writer.getMemberTreeHeader(); for (Element method : methods) { currentMethod = (ExecutableElement)method; - Content methodDocTree = writer.getMethodDocTreeHeader(currentMethod, methodDetailsTree); + Content methodDocTree = writer.getMethodDocTreeHeader(currentMethod); buildSignature(methodDocTree); buildDeprecationInfo(methodDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PropertyBuilder.java 2020-01-07 15:24:48.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PropertyBuilder.java 2020-01-07 15:24:47.000000000 +0100 @@ -122,14 +122,12 @@ return; } if (hasMembersToDocument()) { - Content propertyDetailsTreeHeader = writer.getPropertyDetailsTreeHeader(typeElement, - memberDetailsTree); + Content propertyDetailsTreeHeader = writer.getPropertyDetailsTreeHeader(memberDetailsTree); Content propertyDetailsTree = writer.getMemberTreeHeader(); for (Element property : properties) { currentProperty = (ExecutableElement)property; - Content propertyDocTree = writer.getPropertyDocTreeHeader(currentProperty, - propertyDetailsTree); + Content propertyDocTree = writer.getPropertyDocTreeHeader(currentProperty); buildSignature(propertyDocTree); buildPropertyComments(propertyDocTree); --- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DeprecatedAPIListBuilder.java 2020-01-07 15:24:50.000000000 +0100 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DeprecatedAPIListBuilder.java 2020-01-07 15:24:49.000000000 +0100 @@ -192,7 +192,7 @@ /** * Return true if the list of a given type has size greater than 0. * - * @param type the type of list being checked. + * @param kind the type of list being checked. */ public boolean hasDocumentation(DeprElementKind kind) { return !deprecatedMap.get(kind).isEmpty(); --- old/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java 2020-01-07 15:24:52.000000000 +0100 +++ new/test/langtools/jdk/javadoc/doclet/AccessSkipNav/AccessSkipNav.java 2020-01-07 15:24:51.000000000 +0100 @@ -51,15 +51,15 @@ checkOutput("p1/C1.html", true, // Top navbar "Skip navigation links", - // Top navbar - "\n" + // Top navbar + "\n" + "\n" - + "", + + "", // Bottom navbar "Skip navigation links", - // Bottom navbar - "\n" + // Bottom navbar + "\n" + "\n" - + ""); + + ""); } } --- old/test/langtools/jdk/javadoc/doclet/constantValues/TestConstantValuesDriver.java 2020-01-07 15:24:54.000000000 +0100 +++ new/test/langtools/jdk/javadoc/doclet/constantValues/TestConstantValuesDriver.java 2020-01-07 15:24:53.000000000 +0100 @@ -53,29 +53,29 @@ "TEST3PASSES", "TEST4PASSES", "\"<Hello World>\"", - "public static final byte\n" + + "public static final byte\n" + "" + "BYTE_MAX_VALUE\n" + "127", - "public static final byte\n" + + "public static final byte\n" + "" + "BYTE_MIN_VALUE\n" + "-127", - "public static final char\n" + + "public static final char\n" + "" + "CHAR_MAX_VALUE\n" + "65535", - "public static final double", + "public static final double", "" + "DOUBLE_MAX_VALUE\n" + "1.7976931348623157E308", - "public static final double\n" + + "public static final double\n" + "" + "DOUBLE_MIN_VALUE", - "public static final boolean\n" + + "public static final boolean\n" + "" + "GOODBYE", - "public static final boolean\n" + + "public static final boolean\n" + "HELLO\n" + "true" ); --- old/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java 2020-01-07 15:24:56.000000000 +0100 +++ new/test/langtools/jdk/javadoc/doclet/testAnchorNames/TestAnchorNames.java 2020-01-07 15:24:55.000000000 +0100 @@ -61,15 +61,19 @@ // Test some section markers and links to these markers checkOutput("pkg1/RegClass.html", true, - "", + "", "", - "", + "
\n" + + "

Nested Class Summary

", "
", - "", + "
\n" + + "

Method Summary

", "
", - "", + "
\n" + + "

Field Details

", "
", - "", + "
\n" + + "

Constructor Details

", "
"); // Test some members and link to these members @@ -80,59 +84,59 @@ // Test some fields checkOutput("pkg1/RegClass.html", true, - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", ""); checkOutput("pkg1/DeprMemClass.html", true, - "", + "
", ""); // Test constructor checkOutput("pkg1/RegClass.html", true, - "", + "
", ""); // Test some methods checkOutput("pkg1/RegClass.html", true, - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", "", - "", + "
", ""); checkOutput("pkg1/DeprMemClass.html", true, - "", + "
", ""); // Test enum checkOutput("pkg1/RegClass.Te$t_Enum.html", true, - "", + "
", ""); // Test nested class checkOutput("pkg1/RegClass._NestedClas$.html", true, - "", + "
", ""); // Test class use page @@ -151,11 +155,11 @@ // Test serialized form page checkOutput("serialized-form.html", true, //This is the marker for the link that appears in the pkg1.RegClass.html page - ""); + "
"); // Test member name index page checkOutput("index-all.html", true, - "", + "

$

", "
$", "_"); } @@ -194,10 +198,10 @@ checkExit(Exit.OK); checkOutput("p/Def.html", true, - "", - "", - "", - ""); + "
", + "
", + "
", + "
"); checkOutput("p/Ref.html", true, "àé", --- old/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java 2020-01-07 15:24:57.000000000 +0100 +++ new/test/langtools/jdk/javadoc/doclet/testAnnotationOptional/TestAnnotationOptional.java 2020-01-07 15:24:57.000000000 +0100 @@ -49,6 +49,6 @@ checkExit(Exit.OK); checkOutput("pkg/AnnotationOptional.html", true, - ""); + "
"); } } --- old/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java 2020-01-07 15:24:59.000000000 +0100 +++ new/test/langtools/jdk/javadoc/doclet/testAnnotationTypes/TestAnnotationTypes.java 2020-01-07 15:24:59.000000000 +0100 @@ -60,7 +60,8 @@ "DEFAULT_NAME" + "", "", - "

DEFAULT_NAME

\n" + "
\n" + + "

DEFAULT_NAME

\n" + "
static final " + "java.lang.String " + "DEFAULT_NAME
\n"); @@ -75,15 +76,14 @@ "", "