8243533: Only one of several deprecated overloaded methods listed in the Deprecated list
Reviewed-by: jjg
This commit is contained in:
parent
9d40d80237
commit
2e6923ffd6
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets
test/langtools/jdk/javadoc/doclet/testDeprecatedDocs
@ -205,8 +205,6 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
|
||||
|
||||
private EnumMap<DeprElementKind, AbstractMemberWriter> writerMap;
|
||||
|
||||
private HtmlConfiguration configuration;
|
||||
|
||||
private final Navigation navBar;
|
||||
|
||||
/**
|
||||
@ -218,7 +216,6 @@ public class DeprecatedListWriter extends SubWriterHolderWriter {
|
||||
|
||||
public DeprecatedListWriter(HtmlConfiguration configuration, DocPath filename) {
|
||||
super(configuration, filename);
|
||||
this.configuration = configuration;
|
||||
this.navBar = new Navigation(null, configuration, PageMode.DEPRECATED, path);
|
||||
NestedClassWriterImpl classW = new NestedClassWriterImpl(this);
|
||||
writerMap = new EnumMap<>(DeprElementKind.class);
|
||||
|
@ -139,9 +139,15 @@ public class Comparators {
|
||||
@Override
|
||||
public int compare(Element e1, Element e2) {
|
||||
int result = compareFullyQualifiedNames(e1, e2);
|
||||
if (result == 0)
|
||||
result = compareModuleNames(e1, e2);
|
||||
return result;
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
// if elements are executable compare their parameter arrays
|
||||
result = compareParameters(e1, e2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
return compareModuleNames(e1, e2);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -256,19 +262,11 @@ public class Comparators {
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
// if element kinds are the same, and are methods,
|
||||
// compare the method parameters
|
||||
if (hasParameters(e1)) {
|
||||
List<? extends VariableElement> parameters1 = ((ExecutableElement)e1).getParameters();
|
||||
List<? extends VariableElement> parameters2 = ((ExecutableElement)e2).getParameters();
|
||||
result = compareParameters(false, parameters1, parameters2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
result = compareParameters(true, parameters1, parameters2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
// if element kinds are the same, and are executable,
|
||||
// compare the parameter arrays
|
||||
result = compareParameters(e1, e2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
// else fall back on fully qualified names
|
||||
result = compareFullyQualifiedNames(e1, e2);
|
||||
@ -383,15 +381,7 @@ public class Comparators {
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
if (hasParameters(e1) && hasParameters(e2)) {
|
||||
List<? extends VariableElement> parameters1 = ((ExecutableElement)e1).getParameters();
|
||||
List<? extends VariableElement> parameters2 = ((ExecutableElement)e2).getParameters();
|
||||
result = compareParameters(false, parameters1, parameters2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
result = compareParameters(true, parameters1, parameters2);
|
||||
}
|
||||
result = compareParameters(e1, e2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
@ -504,6 +494,34 @@ public class Comparators {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the parameter arrays of two elements if they both are executable.
|
||||
* @param e1 the first element
|
||||
* @param e2 the second element
|
||||
* @return a negative integer, zero, or a positive integer as the first
|
||||
* argument is less than, equal to, or greater than the second
|
||||
*/
|
||||
protected int compareParameters(Element e1, Element e2) {
|
||||
int result = 0;
|
||||
if (hasParameters(e1) && hasParameters(e2)) {
|
||||
List<? extends VariableElement> parameters1 = ((ExecutableElement)e1).getParameters();
|
||||
List<? extends VariableElement> parameters2 = ((ExecutableElement)e2).getParameters();
|
||||
result = compareParameters(false, parameters1, parameters2);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
result = compareParameters(true, parameters1, parameters2);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the kinds of two elements.
|
||||
* @param e1 the first element
|
||||
* @param e2 the second element
|
||||
* @return a negative integer, zero, or a positive integer as the first
|
||||
* argument is less than, equal to, or greater than the second
|
||||
*/
|
||||
protected int compareElementKinds(Element e1, Element e2) {
|
||||
return Integer.compare(getKindIndex(e1), getKindIndex(e2));
|
||||
}
|
||||
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* @test
|
||||
* @bug 4927552 8026567 8071982 8162674 8175200 8175218 8183511 8186332
|
||||
* 8169819 8074407 8191030 8182765 8184205
|
||||
* 8169819 8074407 8191030 8182765 8184205 8243533
|
||||
* @summary test generated docs for deprecated items
|
||||
* @library ../../lib
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
@ -164,9 +164,28 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
</td>""",
|
||||
"""
|
||||
<td class="col-last">
|
||||
<div class="block"><span class="deprecated-label">Deprecated.</span>
|
||||
<div class="block"><span class="deprecated-label">Deprecated, for removal: This \
|
||||
API element is subject to removal in a future version.</span>
|
||||
<div class="deprecation-comment">class_test4 passes.</div>
|
||||
</div>
|
||||
</td>""",
|
||||
"""
|
||||
<td class="col-last">
|
||||
<div class="block"><span class="deprecated-label">Deprecated.</span>
|
||||
<div class="deprecation-comment">class_test5 passes.</div>
|
||||
</div>
|
||||
</td>""",
|
||||
"""
|
||||
<td class="col-last">
|
||||
<div class="block"><span class="deprecated-label">Deprecated.</span>
|
||||
<div class="deprecation-comment">class_test6 passes.</div>
|
||||
</div>
|
||||
</td>""",
|
||||
"""
|
||||
<td class="col-last">
|
||||
<div class="block"><span class="deprecated-label">Deprecated.</span>
|
||||
<div class="deprecation-comment">class_test7 passes.</div>
|
||||
</div>
|
||||
</td>""");
|
||||
|
||||
checkOutput("pkg/TestClass.html", false,
|
||||
@ -355,6 +374,78 @@ public class TestDeprecatedDocs extends JavadocTester {
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>""");
|
||||
</div>""",
|
||||
"""
|
||||
<div class="deprecated-summary" id="method">
|
||||
<table class="summary-table">
|
||||
<caption><span>Methods</span></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-first" scope="col">Method</th>
|
||||
<th class="col-last" scope="col">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="alt-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/DeprecatedClassByAnnotation.html#method()">pkg.DeprecatedClassByAnnotation.method()</a></th>
|
||||
<td class="col-last"></td>
|
||||
</tr>
|
||||
<tr class="row-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestAnnotationType.html#optional()">pkg.TestAnnotationType.optional()</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">annotation_test2 passes.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="alt-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestAnnotationType.html#required()">pkg.TestAnnotationType.required()</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">annotation_test3 passes.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestClass.html#method()">pkg.TestClass.method()</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">class_test5 passes. This is the second sentence of deprecated description for a method.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="alt-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestClass.html#overloadedMethod(int)">pkg.TestClass.overloadedMethod​(int)</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">class_test7 passes. Overloaded method 2.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestClass.html#overloadedMethod(java.lang.String)">pkg.TestClass.overloadedMethod​(String)</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">class_test6 passes. Overloaded method 1.</div>
|
||||
</td>
|
||||
</tr>""",
|
||||
"""
|
||||
<div class="deprecated-summary" id="constructor">
|
||||
<table class="summary-table">
|
||||
<caption><span>Constructors</span></caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-first" scope="col">Constructor</th>
|
||||
<th class="col-last" scope="col">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="alt-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/DeprecatedClassByAnnotation.html#%3Cinit%3E()">pkg.DeprecatedClassByAnnotation()</a></th>
|
||||
<td class="col-last"></td>
|
||||
</tr>
|
||||
<tr class="row-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestClass.html#%3Cinit%3E()">pkg.TestClass()</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">class_test3 passes. This is the second sentence of deprecated description for a constructor.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="alt-color">
|
||||
<th class="col-deprecated-item-name" scope="row"><a href="pkg/TestClass.html#%3Cinit%3E(java.lang.String)">pkg.TestClass​(String)</a></th>
|
||||
<td class="col-last">
|
||||
<div class="deprecation-comment">class_test4 passes. Overloaded constructor.</div>
|
||||
</td>
|
||||
</tr>""");
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,23 @@ public class TestClass {
|
||||
public TestClass() {}
|
||||
|
||||
/**
|
||||
* @deprecated class_test4 passes. This is the second sentence of deprecated description for a method.
|
||||
* @deprecated class_test4 passes. Overloaded constructor.
|
||||
*/
|
||||
@Deprecated(forRemoval=true)
|
||||
public TestClass(String s) {}
|
||||
|
||||
/**
|
||||
* @deprecated class_test5 passes. This is the second sentence of deprecated description for a method.
|
||||
*/
|
||||
public void method() {}
|
||||
|
||||
/**
|
||||
* @deprecated class_test6 passes. Overloaded method 1.
|
||||
*/
|
||||
public void overloadedMethod(String s) {}
|
||||
|
||||
/**
|
||||
* @deprecated class_test7 passes. Overloaded method 2.
|
||||
*/
|
||||
public void overloadedMethod(int i) {}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user