You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/05/22 04:21:52 UTC
[groovy] branch GROOVY_3_0_X updated: GROOVY-9567: groovydoc: show
abstract modifier on abstract methods (closes #1250)
This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
new 3de038b GROOVY-9567: groovydoc: show abstract modifier on abstract methods (closes #1250)
3de038b is described below
commit 3de038b60cb8a32ce38e897d675c060b355f1ff5
Author: Mikko Värri <vm...@linuxbox.fi>
AuthorDate: Thu May 21 23:26:30 2020 +0300
GROOVY-9567: groovydoc: show abstract modifier on abstract methods (closes #1250)
---
.../tools/groovydoc/SimpleGroovyMethodDoc.java | 4 ----
.../gstringTemplates/classLevel/classDocName.html | 2 +-
.../groovy/tools/groovydoc/GroovyDocToolTest.java | 22 ++++++++++++++++++++++
.../GroovyClassWithMultipleInterfaces.groovy | 1 +
4 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyMethodDoc.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyMethodDoc.java
index 19db0c7..8a572ac 100644
--- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyMethodDoc.java
+++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyMethodDoc.java
@@ -40,10 +40,6 @@ public class SimpleGroovyMethodDoc extends SimpleGroovyExecutableMemberDoc imple
this.returnType = returnType;
}
- public boolean isAbstract() {/*todo*/
- return false;
- }
-
public GroovyClassDoc overriddenClass() {/*todo*/
return null;
}
diff --git a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html
index 277799d..011ba52 100644
--- a/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html
+++ b/subprojects/groovy-groovydoc/src/main/resources/org/codehaus/groovy/tools/groovydoc/gstringTemplates/classLevel/classDocName.html
@@ -523,7 +523,7 @@ if (classDoc.isInterface() && classDoc.interfaces()) {
<% visibleMethods.eachWithIndex { method, i -> %>
<tr class="${i%2==0?'altColor':'rowColor'}">
<td class="colFirst"><code>${org.codehaus.groovy.tools.groovydoc.SimpleGroovyClassDoc.encodeAngleBrackets(method.typeParameters()) ?: ''}</code></td>
- <td class="colLast"><code>${modifiersBrief(method)}${linkable(method.returnType())}</code></td>
+ <td class="colLast"><code>${modifiers(method)}${linkable(method.returnType())}</code></td>
<td class="colLast"><code><strong><a href="#${nameFromParams(method)}">${method.name()}</a></strong>(${paramsOf(method, true)})</code><br>${method.firstSentenceCommentText()}</td>
</tr>
<% } %>
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
index ed5b64c..6c1ebe8 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/GroovyDocToolTest.java
@@ -983,6 +983,28 @@ public class GroovyDocToolTest extends GroovyTestCase {
)).matcher(javadoc).find());
}
+ public void testAbstractMethods() throws Exception {
+ final String base = "org/codehaus/groovy/tools/groovydoc/testfiles";
+ htmlTool.add(Arrays.asList(
+ base + "/GroovyClassWithMultipleInterfaces.groovy",
+ base + "/JavaClassWithDiamond.java"
+ ));
+
+ final MockOutputTool output = new MockOutputTool();
+ htmlTool.renderToOutput(output, MOCK_DIR);
+
+ final String groovydoc = output.getText(MOCK_DIR + "/" + base + "/GroovyClassWithMultipleInterfaces.html");
+ final String javadoc = StringGroovyMethods.normalize(output.getText(MOCK_DIR + "/" + base + "/JavaClassWithDiamond.html"));
+
+ final Pattern methodSummary = Pattern.compile("<code>(public )?abstract void</code>");
+ final Pattern methodDetails = Pattern.compile("<h4>(public )?abstract void <strong>link</strong>");
+
+ assertTrue("The Groovy method summary should contain 'abstract'", methodSummary.matcher(groovydoc).find());
+ assertTrue("The Java method summary should contain 'abstract'", methodSummary.matcher(javadoc).find());
+ assertTrue("The Groovy method details should contain 'abstract'", methodDetails.matcher(groovydoc).find());
+ assertTrue("The Java method details should contain 'abstract'", methodDetails.matcher(javadoc).find());
+ }
+
public void testLinksToSamePackage() throws Exception {
final String base = "org/codehaus/groovy/tools/groovydoc/testfiles";
htmlTool.add(Arrays.asList(
diff --git a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyClassWithMultipleInterfaces.groovy b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyClassWithMultipleInterfaces.groovy
index 41946fd..b3de975 100644
--- a/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyClassWithMultipleInterfaces.groovy
+++ b/subprojects/groovy-groovydoc/src/test/groovy/org/codehaus/groovy/tools/groovydoc/testfiles/GroovyClassWithMultipleInterfaces.groovy
@@ -20,4 +20,5 @@ package org.codehaus.groovy.tools.groovydoc.testfiles
abstract class GroovyClassWithMultipleInterfaces implements GroovyInterface1, JavaInterface1, Runnable {
private GroovyClassWithMultipleInterfaces() {}
+ abstract void link()
}