Skip to content

Commit b0e7e5a

Browse files
committed
8261263: Simplify javadoc link code
Reviewed-by: jjg
1 parent 8ebed28 commit b0e7e5a

15 files changed

+104
-216
lines changed

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,9 @@
3232
import javax.lang.model.element.ExecutableElement;
3333
import javax.lang.model.element.TypeElement;
3434
import javax.lang.model.element.VariableElement;
35-
import javax.lang.model.type.ArrayType;
3635
import javax.lang.model.type.DeclaredType;
3736
import javax.lang.model.type.ExecutableType;
3837
import javax.lang.model.type.TypeMirror;
39-
import javax.lang.model.type.TypeVariable;
4038
import javax.lang.model.util.SimpleTypeVisitor14;
4139

4240
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
@@ -97,7 +95,8 @@ protected Content getSummaryLink(Element member) {
9795
}
9896
content.add(signature);
9997

100-
return writer.getDocLink(MEMBER_DEPRECATED_PREVIEW, utils.getEnclosingTypeElement(member), member, content);
98+
return writer.getDocLink(MEMBER_DEPRECATED_PREVIEW, utils.getEnclosingTypeElement(member),
99+
member, content, false);
101100
}
102101

103102
/**
@@ -113,7 +112,7 @@ protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement te, Element
113112
Content tdSummary) {
114113
ExecutableElement ee = (ExecutableElement)member;
115114
Content memberLink = HtmlTree.SPAN(HtmlStyle.memberNameLink,
116-
writer.getDocLink(context, te, ee, name(ee), false));
115+
writer.getDocLink(context, te, ee, name(ee)));
117116
Content code = HtmlTree.CODE(memberLink);
118117
addParameters(ee, code);
119118
tdSummary.add(code);
@@ -128,7 +127,7 @@ protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement te, Element
128127
*/
129128
@Override
130129
protected void addInheritedSummaryLink(TypeElement te, Element member, Content linksTree) {
131-
linksTree.add(writer.getDocLink(MEMBER, te, member, name(member), false));
130+
linksTree.add(writer.getDocLink(MEMBER, te, member, name(member)));
132131
}
133132

134133
/**

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedT
187187
protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
188188
Content tdSummary) {
189189
Content memberLink = HtmlTree.SPAN(HtmlStyle.memberNameLink,
190-
writer.getDocLink(context, member, name(member), false));
190+
writer.getDocLink(context, member, name(member)));
191191
Content code = HtmlTree.CODE(memberLink);
192192
tdSummary.add(code);
193193
}

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2001, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -237,7 +237,7 @@ private Content getTypeColumn(VariableElement member) {
237237
*/
238238
private Content getNameColumn(VariableElement member) {
239239
Content nameContent = getDocLink(LinkInfoImpl.Kind.CONSTANT_SUMMARY,
240-
member, member.getSimpleName(), false);
240+
member, member.getSimpleName());
241241
return HtmlTree.CODE(nameContent);
242242
}
243243

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/EnumConstantWriterImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedT
160160
protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
161161
Content tdSummary) {
162162
Content memberLink = HtmlTree.SPAN(HtmlStyle.memberNameLink,
163-
writer.getDocLink(context, member, name(member), false));
163+
writer.getDocLink(context, member, name(member)));
164164
Content code = HtmlTree.CODE(memberLink);
165165
tdSummary.add(code);
166166
}

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ protected Table createSummaryTable() {
161161
@Override
162162
public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedTree) {
163163
Content classLink = writer.getPreQualifiedClassLink(
164-
LinkInfoImpl.Kind.MEMBER, typeElement, false);
164+
LinkInfoImpl.Kind.MEMBER, typeElement);
165165
Content label;
166166
if (options.summarizeOverriddenMethods()) {
167167
label = new StringContent(utils.isClass(typeElement)
@@ -184,16 +184,15 @@ public void addInheritedSummaryLabel(TypeElement typeElement, Content inheritedT
184184
protected void addSummaryLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element member,
185185
Content tdSummary) {
186186
Content memberLink = HtmlTree.SPAN(HtmlStyle.memberNameLink,
187-
writer.getDocLink(context, typeElement , member, name(member), false));
187+
writer.getDocLink(context, typeElement , member, name(member)));
188188
Content code = HtmlTree.CODE(memberLink);
189189
tdSummary.add(code);
190190
}
191191

192192
@Override
193193
protected void addInheritedSummaryLink(TypeElement typeElement, Element member, Content linksTree) {
194194
linksTree.add(
195-
writer.getDocLink(LinkInfoImpl.Kind.MEMBER, typeElement, member,
196-
name(member), false));
195+
writer.getDocLink(LinkInfoImpl.Kind.MEMBER, typeElement, member, name(member)));
197196
}
198197

199198
@Override

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java

Lines changed: 23 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ public Content getLink(LinkInfoImpl linkInfo) {
763763
*/
764764
public Content getTypeParameterLinks(LinkInfoImpl linkInfo) {
765765
LinkFactoryImpl factory = new LinkFactoryImpl(this);
766-
return factory.getTypeParameterLinks(linkInfo, false);
766+
return factory.getTypeParameterLinks(linkInfo);
767767
}
768768

769769
/*************************************************************
@@ -853,18 +853,16 @@ public void addPreQualifiedClassLink(LinkInfoImpl.Kind context, TypeElement type
853853
* link label.
854854
*
855855
* @param typeElement the class to link to.
856-
* @param isStrong true if the link should be strong.
857856
* @return the link with the package portion of the label in plain text.
858857
*/
859-
public Content getPreQualifiedClassLink(LinkInfoImpl.Kind context,
860-
TypeElement typeElement, boolean isStrong) {
858+
public Content getPreQualifiedClassLink(LinkInfoImpl.Kind context, TypeElement typeElement) {
861859
ContentBuilder classlink = new ContentBuilder();
862860
PackageElement pkg = utils.containingPackage(typeElement);
863861
if (pkg != null && ! configuration.shouldExcludeQualifier(pkg.getSimpleName().toString())) {
864862
classlink.add(getEnclosingPackageName(typeElement));
865863
}
866864
classlink.add(getLink(new LinkInfoImpl(configuration,
867-
context, typeElement).label(utils.getSimpleName(typeElement)).strong(isStrong)));
865+
context, typeElement).label(utils.getSimpleName(typeElement))));
868866
return classlink;
869867
}
870868

@@ -934,65 +932,55 @@ public void addPreQualifiedStrongClassLink(LinkInfoImpl.Kind context, TypeElemen
934932
*/
935933
public Content getDocLink(LinkInfoImpl.Kind context, Element element, CharSequence label) {
936934
return getDocLink(context, utils.getEnclosingTypeElement(element), element,
937-
new StringContent(label));
935+
new StringContent(label), false);
938936
}
939937

940938
/**
941939
* Return the link for the given member.
942940
*
943941
* @param context the id of the context where the link will be printed.
942+
* @param typeElement the typeElement that we should link to. This is not
943+
* not necessarily the type containing element since we may be
944+
* inheriting comments.
944945
* @param element the member being linked to.
945946
* @param label the label for the link.
946-
* @param strong true if the link should be strong.
947947
* @return the link for the given member.
948948
*/
949-
public Content getDocLink(LinkInfoImpl.Kind context, Element element, CharSequence label,
950-
boolean strong) {
951-
return getDocLink(context, utils.getEnclosingTypeElement(element), element, label, strong);
949+
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
950+
CharSequence label) {
951+
return getDocLink(context, typeElement, element, label, false);
952952
}
953953

954954
/**
955955
* Return the link for the given member.
956956
*
957957
* @param context the id of the context where the link will be printed.
958-
* @param typeElement the typeElement that we should link to. This is not
959-
necessarily equal to element.containingClass(). We may be
960-
inheriting comments.
958+
* @param typeElement the typeElement that we should link to. This is not
959+
* not necessarily the type containing element since we may be
960+
* inheriting comments.
961961
* @param element the member being linked to.
962962
* @param label the label for the link.
963-
* @param strong true if the link should be strong.
964963
* @return the link for the given member.
965964
*/
966965
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
967-
CharSequence label, boolean strong) {
968-
return getDocLink(context, typeElement, element, label, strong, false);
969-
}
970-
971-
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
972-
Content label, boolean strong) {
973-
return getDocLink(context, typeElement, element, label, strong, false);
966+
CharSequence label, boolean isProperty) {
967+
return getDocLink(context, typeElement, element, new StringContent(label), isProperty);
974968
}
975969

976970
/**
977971
* Return the link for the given member.
978972
*
979973
* @param context the id of the context where the link will be printed.
980-
* @param typeElement the typeElement that we should link to. This is not
981-
necessarily equal to element.containingClass(). We may be
982-
inheriting comments.
974+
* @param typeElement the typeElement that we should link to. This is not
975+
* not necessarily the type containing element since we may be
976+
* inheriting comments.
983977
* @param element the member being linked to.
984978
* @param label the label for the link.
985-
* @param strong true if the link should be strong.
986979
* @param isProperty true if the element parameter is a JavaFX property.
987980
* @return the link for the given member.
988981
*/
989982
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
990-
CharSequence label, boolean strong, boolean isProperty) {
991-
return getDocLink(context, typeElement, element, new StringContent(label), strong, isProperty);
992-
}
993-
994-
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
995-
Content label, boolean strong, boolean isProperty) {
983+
Content label, boolean isProperty) {
996984
if (!utils.isLinkable(typeElement, element)) {
997985
return label;
998986
}
@@ -1003,52 +991,19 @@ public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, El
1003991
return getLink(new LinkInfoImpl(configuration, context, typeElement)
1004992
.label(label)
1005993
.where(id.name())
1006-
.targetMember(element)
1007-
.strong(strong));
994+
.targetMember(element));
1008995
}
1009996

1010997
if (utils.isVariableElement(element) || utils.isTypeElement(element)) {
1011998
return getLink(new LinkInfoImpl(configuration, context, typeElement)
1012999
.label(label)
10131000
.where(element.getSimpleName().toString())
1014-
.targetMember(element)
1015-
.strong(strong));
1001+
.targetMember(element));
10161002
}
10171003

10181004
return label;
10191005
}
10201006

1021-
/**
1022-
* Return the link for the given member.
1023-
*
1024-
* @param context the id of the context where the link will be added
1025-
* @param typeElement the typeElement that we should link to. This is not
1026-
necessarily equal to element.containingClass(). We may be
1027-
inheriting comments
1028-
* @param element the member being linked to
1029-
* @param label the label for the link
1030-
* @return the link for the given member
1031-
*/
1032-
public Content getDocLink(LinkInfoImpl.Kind context, TypeElement typeElement, Element element,
1033-
Content label) {
1034-
if (!(utils.isIncluded(element) || utils.isLinkable(typeElement))) {
1035-
return label;
1036-
} else if (utils.isExecutableElement(element)) {
1037-
ExecutableElement emd = (ExecutableElement) element;
1038-
return getLink(new LinkInfoImpl(configuration, context, typeElement)
1039-
.label(label)
1040-
.where(htmlIds.forMember(emd).name())
1041-
.targetMember(element));
1042-
} else if (utils.isVariableElement(element) || utils.isTypeElement(element)) {
1043-
return getLink(new LinkInfoImpl(configuration, context, typeElement)
1044-
.label(label)
1045-
.where(element.getSimpleName().toString())
1046-
.targetMember(element));
1047-
} else {
1048-
return label;
1049-
}
1050-
}
1051-
10521007
public Content seeTagToContent(Element element, DocTree see) {
10531008
Kind kind = see.getKind();
10541009
if (!(kind == LINK || kind == SEE || kind == LINK_PLAIN)) {
@@ -1900,8 +1855,7 @@ private void addAnnotations(TypeElement annotationDoc, LinkInfoImpl linkInfo,
19001855
}
19011856
String simpleName = element.getSimpleName().toString();
19021857
if (multipleValues || !"value".equals(simpleName)) { // Omit "value=" where unnecessary
1903-
annotation.add(getDocLink(LinkInfoImpl.Kind.ANNOTATION,
1904-
element, simpleName, false));
1858+
annotation.add(getDocLink(LinkInfoImpl.Kind.ANNOTATION, element, simpleName));
19051859
annotation.add("=");
19061860
}
19071861
AnnotationValue annotationValue = map.get(element);
@@ -2015,8 +1969,7 @@ public Content visitAnnotation(AnnotationMirror a, Void p) {
20151969
}
20161970
@Override
20171971
public Content visitEnumConstant(VariableElement c, Void p) {
2018-
return getDocLink(LinkInfoImpl.Kind.ANNOTATION,
2019-
c, c.getSimpleName(), false);
1972+
return getDocLink(LinkInfoImpl.Kind.ANNOTATION, c, c.getSimpleName());
20201973
}
20211974
@Override
20221975
public Content visitArray(List<? extends AnnotationValue> vals, Void p) {

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexWriter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -226,7 +226,8 @@ protected void addElementDescription(IndexItem item, Content dlTree) {
226226
case ENUM_CONSTANT:
227227
TypeElement containingType = item.getContainingTypeElement();
228228
dt = HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.memberNameLink,
229-
getDocLink(LinkInfoImpl.Kind.INDEX, containingType, element, new StringContent(label))));
229+
getDocLink(LinkInfoImpl.Kind.INDEX, containingType, element,
230+
new StringContent(label), false)));
230231
dt.add(" - ");
231232
addMemberDesc(element, containingType, dt);
232233
break;

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
4040
import jdk.javadoc.internal.doclets.formats.html.markup.Entity;
4141
import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
42-
import jdk.javadoc.internal.doclets.formats.html.markup.TagName;
4342
import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
4443
import jdk.javadoc.internal.doclets.toolkit.Content;
4544
import jdk.javadoc.internal.doclets.toolkit.Resources;
@@ -78,7 +77,6 @@ protected Content newContent() {
7877
protected Content getClassLink(LinkInfo linkInfo) {
7978
BaseConfiguration configuration = m_writer.configuration;
8079
LinkInfoImpl classLinkInfo = (LinkInfoImpl) linkInfo;
81-
boolean noLabel = linkInfo.label == null || linkInfo.label.isEmpty();
8280
TypeElement typeElement = classLinkInfo.typeElement;
8381
// Create a tool tip if we are linking to a class or interface. Don't
8482
// create one if we are linking to a member.
@@ -121,9 +119,6 @@ protected Content getClassLink(LinkInfo linkInfo) {
121119
filename.fragment(m_writer.htmlIds.forPreviewSection(target).name()),
122120
m_writer.contents.previewMark)));
123121
}
124-
if (noLabel && !classLinkInfo.excludeTypeParameterLinks) {
125-
link.add(getTypeParameterLinks(linkInfo));
126-
}
127122
return link;
128123
}
129124
}
@@ -140,9 +135,6 @@ protected Content getClassLink(LinkInfo linkInfo) {
140135
m_writer.contents.previewMark,
141136
false, false)));
142137
}
143-
if (noLabel && !classLinkInfo.excludeTypeParameterLinks) {
144-
link.add(getTypeParameterLinks(linkInfo));
145-
}
146138
return link;
147139
}
148140
}
@@ -151,14 +143,11 @@ protected Content getClassLink(LinkInfo linkInfo) {
151143
if (flags.contains(ElementFlag.PREVIEW)) {
152144
link.add(HtmlTree.SUP(m_writer.contents.previewMark));
153145
}
154-
if (noLabel && !classLinkInfo.excludeTypeParameterLinks) {
155-
link.add(getTypeParameterLinks(linkInfo));
156-
}
157146
return link;
158147
}
159148

160149
@Override
161-
protected Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel) {
150+
protected Content getTypeParameterLinks(LinkInfo linkInfo) {
162151
Content links = newContent();
163152
List<TypeMirror> vars = new ArrayList<>();
164153
TypeMirror ctype = linkInfo.type != null
@@ -176,8 +165,7 @@ protected Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel)
176165
// Nothing to document.
177166
return links;
178167
}
179-
if (((linkInfo.includeTypeInClassLinkLabel && isClassLabel)
180-
|| (linkInfo.includeTypeAsSepLink && !isClassLabel)) && !vars.isEmpty()) {
168+
if (!vars.isEmpty()) {
181169
links.add("<");
182170
boolean many = false;
183171
for (TypeMirror t : vars) {
@@ -284,11 +272,6 @@ private String getClassToolTip(TypeElement typeElement, boolean isTypeLink) {
284272
* @param linkInfo the information about the link.
285273
*/
286274
private DocPath getPath(LinkInfoImpl linkInfo) {
287-
if (linkInfo.context == LinkInfoImpl.Kind.PACKAGE_FRAME) {
288-
//Not really necessary to do this but we want to be consistent
289-
//with 1.4.2 output.
290-
return docPaths.forName(linkInfo.typeElement);
291-
}
292275
return m_writer.pathToRoot.resolve(docPaths.forClass(linkInfo.typeElement));
293276
}
294277
}

0 commit comments

Comments
 (0)