You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/12/12 16:43:32 UTC
[isis] branch master updated: ISIS-2473: switch to
JavaSourceWithFootnotesFormat
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new da8b918 ISIS-2473: switch to JavaSourceWithFootnotesFormat
da8b918 is described below
commit da8b9184266cc29bad8cafe4dd9c28c665b4986d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Dec 12 17:43:20 2020 +0100
ISIS-2473: switch to JavaSourceWithFootnotesFormat
show all public members in java source include, but only generate
footnotes if java-doc is available
---
.../isis/tooling/cli/projdoc/ProjectDocModel.java | 4 +-
.../apache/isis/tooling/j2adoc/J2AdocContext.java | 2 +-
.../org/apache/isis/tooling/j2adoc/J2AdocUnit.java | 17 ++--
.../tooling/j2adoc/convert/J2AdocConverter.java | 4 +-
.../j2adoc/convert/J2AdocConverterDefault.java | 17 ++--
.../j2adoc/format/UnitFormatterAbstract.java | 62 +++++++++---
.../j2adoc/format/UnitFormatterCompact.java | 35 +------
.../UnitFormatterWithSourceAndFootNotes.java | 109 +++++++++++++--------
.../isis/tooling/j2adoc/test/J2AdocTest.java | 7 +-
.../tooling/javamodel/ast/AnyTypeDeclaration.java | 7 --
.../javamodel/ast/ConstructorDeclarations.java | 6 +-
.../isis/tooling/javamodel/ast/Javadocs.java | 75 ++++++++------
.../tooling/javamodel/ast/MethodDeclarations.java | 6 +-
13 files changed, 205 insertions(+), 146 deletions(-)
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 91a0f97..897af4b 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -87,7 +87,9 @@ public class ProjectDocModel {
modules = new TreeSet<ProjectNode>();
projTree.depthFirst(modules::add);
- val j2aContext = J2AdocContext.compactFormat()
+ val j2aContext = J2AdocContext
+ //.compactFormat()
+ .javaSourceWithFootnotesFormat()
.licenseHeader(cliConfig.getProjectDoc().getLicenseHeader())
.xrefPageIdFormat(cliConfig.getDocumentGlobalIndexXrefPageIdFormat())
.build();
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
index c49af93..dcd22a6 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
@@ -106,7 +106,7 @@ public class J2AdocContext {
// -- PREDEFINED FORMATS
- public static J2AdocContextBuilder javaSourceWithFootNotesFormat() {
+ public static J2AdocContextBuilder javaSourceWithFootnotesFormat() {
return J2AdocContext.builder()
.converterFactory(J2AdocConverter::createDefault)
.formatterFactory(UnitFormatterWithSourceAndFootNotes::new)
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocUnit.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocUnit.java
index 46dd429..9b86bc9 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocUnit.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocUnit.java
@@ -31,7 +31,6 @@ import com.github.javaparser.javadoc.Javadoc;
import org.asciidoctor.ast.Document;
-import org.apache.isis.commons.collections.Can;
import org.apache.isis.tooling.j2adoc.util.AsciiDocIncludeTagFilter;
import org.apache.isis.tooling.javamodel.ast.AnyTypeDeclaration;
import org.apache.isis.tooling.javamodel.ast.CompilationUnits;
@@ -91,20 +90,20 @@ public final class J2AdocUnit {
return atd.getKind().name().toLowerCase();
}
- public Can<EnumConstantDeclaration> getEnumConstantDeclarations() {
- return atd.getEnumConstantDeclarations();
+ public Stream<EnumConstantDeclaration> streamEnumConstantDeclarations() {
+ return atd.getEnumConstantDeclarations().stream();
}
- public Can<FieldDeclaration> getPublicFieldDeclarations() {
- return atd.getPublicFieldDeclarations();
+ public Stream<FieldDeclaration> streamPublicFieldDeclarations() {
+ return atd.getPublicFieldDeclarations().stream();
}
- public Can<ConstructorDeclaration> getPublicConstructorDeclarations() {
- return atd.getPublicConstructorDeclarations();
+ public Stream<ConstructorDeclaration> streamPublicConstructorDeclarations() {
+ return atd.getPublicConstructorDeclarations().stream();
}
- public Can<MethodDeclaration> getPublicMethodDeclarations() {
- return atd.getPublicMethodDeclarations();
+ public Stream<MethodDeclaration> streamPublicMethodDeclarations() {
+ return atd.getPublicMethodDeclarations().stream();
}
@Getter(lazy = true)
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverter.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverter.java
index bd62661..5ef2857 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverter.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverter.java
@@ -24,6 +24,8 @@ import com.github.javaparser.ast.body.FieldDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.javadoc.Javadoc;
+import org.asciidoctor.ast.Document;
+
import org.apache.isis.tooling.j2adoc.J2AdocContext;
import org.apache.isis.tooling.j2adoc.J2AdocUnit;
@@ -31,7 +33,7 @@ import lombok.NonNull;
public interface J2AdocConverter {
- String javadoc(Javadoc javadoc);
+ Document javadoc(Javadoc javadoc);
String enumConstantDeclaration(EnumConstantDeclaration ecd);
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterDefault.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterDefault.java
index b4ed19c..439667a 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterDefault.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterDefault.java
@@ -49,7 +49,6 @@ import org.apache.isis.tooling.javamodel.ast.FieldDeclarations;
import org.apache.isis.tooling.javamodel.ast.Javadocs;
import org.apache.isis.tooling.javamodel.ast.MethodDeclarations;
import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
-import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
import lombok.NonNull;
import lombok.Value;
@@ -222,25 +221,25 @@ final class J2AdocConverterDefault implements J2AdocConverter {
}
@Override
- public String javadoc(final @NonNull Javadoc javadoc) {
+ public Document javadoc(final @NonNull Javadoc javadoc) {
- val adoc = AsciiDocFactory.doc();
+ val doc = AsciiDocFactory.doc();
Javadocs.streamTagContent(javadoc, "deprecated")
.findFirst()
.map(javadocDescription->javadocDescription(javadocDescription))
.ifPresent(deprecatedAdoc->{
- val deprecatedBlock = AsciiDocFactory.block(adoc);
- deprecatedBlock.setSource("+\n[red]#_deprecated:_#");
+ val deprecatedBlock = AsciiDocFactory.block(doc);
+ deprecatedBlock.setSource("[red]#_deprecated:_#");
deprecatedBlock.getBlocks().addAll(deprecatedAdoc.getBlocks());
});
val descriptionAdoc = javadocDescription(javadoc.getDescription());
- adoc.getBlocks().addAll(descriptionAdoc.getBlocks());
-
- return AsciiDocWriter.toString(adoc);
+ doc.getBlocks().addAll(descriptionAdoc.getBlocks());
+
+ return doc;
}
public String inlineTag(final @NonNull JavadocInlineTag inlineTag) {
@@ -298,4 +297,6 @@ final class J2AdocConverterDefault implements J2AdocConverter {
return adoc;
}
+
+
}
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
index 72a420f..5506f00 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
@@ -27,6 +27,7 @@ import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.tooling.j2adoc.J2AdocContext;
import org.apache.isis.tooling.j2adoc.J2AdocUnit;
import org.apache.isis.tooling.j2adoc.convert.J2AdocConverter;
+import org.apache.isis.tooling.javamodel.ast.Javadocs;
import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
import static org.apache.isis.tooling.model4adoc.AsciiDocFactory.block;
@@ -42,6 +43,36 @@ implements UnitFormatter {
private final @NonNull J2AdocContext j2aContext;
+ @Override
+ public String getEnumConstantFormat() {
+ return "`%s`";
+ }
+
+ @Override
+ public String getFieldFormat() {
+ return "`%1$s %2$s`";
+ }
+
+ @Override
+ public String getConstructorFormat() {
+ return "`%1$s(%2$s)`";
+ }
+
+ @Override
+ public String getGenericConstructorFormat() {
+ return "`%2$s%1$s(%3$s)`";
+ }
+
+ @Override
+ public String getMethodFormat() {
+ return "`%2$s(%3$s)` : `%1$s`";
+ }
+
+ @Override
+ public String getGenericMethodFormat() {
+ return "`%3$s%1$s(%4$s)` : `%2$s`";
+ }
+
protected Optional<String> title(final J2AdocUnit unit) {
return Optional.of(
String.format("%s : _%s_",
@@ -49,10 +80,11 @@ implements UnitFormatter {
unit.getDeclarationKeyword()));
}
- protected Optional<String> intro(final J2AdocUnit unit) {
- return unit.getJavadoc()
- .map(javadoc->getConverter().javadoc(javadoc));
-
+ protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
+ unit.getJavadoc()
+ .filter(javadoc->!Javadocs.hasHidden(javadoc))
+ .map(javadoc->getConverter().javadoc(javadoc))
+ .ifPresent(doc->parent.getBlocks().addAll(doc.getBlocks()));
}
protected Optional<String> javaSource(final J2AdocUnit unit) {
@@ -60,13 +92,15 @@ implements UnitFormatter {
}
protected abstract StructuralNode getMemberDescriptionContainer(StructuralNode parent);
- protected abstract void appendMemberDescription(StructuralNode parent, String member, String javadoc);
+ protected abstract void appendMemberDescription(StructuralNode parent, String member, Document javadoc);
protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode parent) {
val ul = getMemberDescriptionContainer(parent);
- unit.getEnumConstantDeclarations().forEach(ecd->{
+ unit.streamEnumConstantDeclarations()
+ .filter(Javadocs::presentAndNotHidden)
+ .forEach(ecd->{
ecd.getJavadoc()
.ifPresent(javadoc->{
@@ -76,7 +110,9 @@ implements UnitFormatter {
});
});
- unit.getPublicFieldDeclarations().forEach(fd->{
+ unit.streamPublicFieldDeclarations()
+ .filter(Javadocs::presentAndNotHidden)
+ .forEach(fd->{
fd.getJavadoc()
.ifPresent(javadoc->{
@@ -88,7 +124,9 @@ implements UnitFormatter {
});
- unit.getPublicConstructorDeclarations().forEach(cd->{
+ unit.streamPublicConstructorDeclarations()
+ .filter(Javadocs::presentAndNotHidden)
+ .forEach(cd->{
cd.getJavadoc()
.ifPresent(javadoc->{
@@ -100,7 +138,9 @@ implements UnitFormatter {
});
- unit.getPublicMethodDeclarations().forEach(md->{
+ unit.streamPublicMethodDeclarations()
+ .filter(Javadocs::presentAndNotHidden)
+ .forEach(md->{
md.getJavadoc()
.ifPresent(javadoc->{
@@ -113,7 +153,6 @@ implements UnitFormatter {
});
}
-
protected Optional<String> outro(final J2AdocUnit unit) {
return Optional.empty();
@@ -137,8 +176,7 @@ implements UnitFormatter {
// -- intro
- intro(unit)
- .ifPresent(block(doc)::setSource);
+ intro(unit, doc);
// -- java source
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
index af2291f..e754583 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.tooling.j2adoc.format;
+import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.List;
import org.asciidoctor.ast.StructuralNode;
@@ -34,47 +35,17 @@ extends UnitFormatterAbstract {
}
@Override
- public String getEnumConstantFormat() {
- return "`%s`";
- }
-
- @Override
- public String getFieldFormat() {
- return "`%1$s %2$s`";
- }
-
- @Override
- public String getConstructorFormat() {
- return "`%1$s(%2$s)`";
- }
-
- @Override
- public String getGenericConstructorFormat() {
- return "`%2$s%1$s(%3$s)`";
- }
-
- @Override
- public String getMethodFormat() {
- return "`%2$s(%3$s)` : `%1$s`";
- }
-
- @Override
- public String getGenericMethodFormat() {
- return "`%3$s%1$s(%4$s)` : `%2$s`";
- }
-
- @Override
protected StructuralNode getMemberDescriptionContainer(StructuralNode parent) {
val ul = AsciiDocFactory.list(parent);
return ul;
}
@Override
- protected void appendMemberDescription(StructuralNode ul, String member, String javadoc) {
+ protected void appendMemberDescription(StructuralNode ul, String member, Document javadoc) {
val li = AsciiDocFactory.listItem((List) ul, member);
val openBlock = AsciiDocFactory.openBlock(li);
val javaDocBlock = AsciiDocFactory.block(openBlock);
- javaDocBlock.setSource(javadoc);
+ javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
}
}
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
index 050a5b1..d9a799e 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
@@ -20,6 +20,7 @@ package org.apache.isis.tooling.j2adoc.format;
import java.util.Optional;
+import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.List;
import org.asciidoctor.ast.StructuralNode;
@@ -28,6 +29,7 @@ import org.apache.isis.tooling.j2adoc.J2AdocUnit;
import org.apache.isis.tooling.javamodel.ast.ConstructorDeclarations;
import org.apache.isis.tooling.javamodel.ast.EnumConstantDeclarations;
import org.apache.isis.tooling.javamodel.ast.FieldDeclarations;
+import org.apache.isis.tooling.javamodel.ast.Javadocs;
import org.apache.isis.tooling.javamodel.ast.MethodDeclarations;
import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
@@ -48,28 +50,46 @@ extends UnitFormatterAbstract {
unit.getDeclarationKeyword(),
unit.getSimpleName()));
- unit.getEnumConstantDeclarations().forEach(ecd->{
- java.append(String.format("\n %s // <.>\n",
+ unit.streamEnumConstantDeclarations()
+ .filter(Javadocs::notExplicitlyHidden)
+ .forEach(ecd->{
+
+ val memberFormat = memberSourceFormat(ecd.getJavadoc().isPresent());
+
+ java.append(String.format(memberFormat,
EnumConstantDeclarations.toNormalizedEnumConstantDeclaration(ecd)));
+
});
- unit.getPublicFieldDeclarations().forEach(fd->{
+ unit.streamPublicFieldDeclarations()
+ .filter(Javadocs::notExplicitlyHidden)
+ .forEach(fd->{
+
+ val memberFormat = memberSourceFormat(fd.getJavadoc().isPresent());
- java.append(String.format("\n %s // <.>\n",
+ java.append(String.format(memberFormat,
FieldDeclarations.toNormalizedFieldDeclaration(fd)));
});
- unit.getPublicConstructorDeclarations().forEach(cd->{
+ unit.streamPublicConstructorDeclarations()
+ .filter(Javadocs::notExplicitlyHidden)
+ .forEach(cd->{
- java.append(String.format("\n %s // <.>\n",
+ val memberFormat = memberSourceFormat(cd.getJavadoc().isPresent());
+
+ java.append(String.format(memberFormat,
ConstructorDeclarations.toNormalizedConstructorDeclaration(cd)));
});
- unit.getPublicMethodDeclarations().forEach(md->{
+ unit.streamPublicMethodDeclarations()
+ .filter(Javadocs::notExplicitlyHidden)
+ .forEach(md->{
+
+ val memberFormat = memberSourceFormat(md.getJavadoc().isPresent());
- java.append(String.format("\n %s // <.>\n",
+ java.append(String.format(memberFormat,
MethodDeclarations.toNormalizedMethodDeclaration(md)));
});
@@ -78,39 +98,39 @@ extends UnitFormatterAbstract {
return Optional.of(
- AsciiDocFactory.SourceFactory.java(java.toString(), unit.getName()));
+ AsciiDocFactory.SourceFactory.java(java.toString(), "Java Sources"));
}
- @Override
- public String getEnumConstantFormat() {
- return "`%s`";
- }
-
- @Override
- public String getFieldFormat() {
- return "`%s %s`";
- }
-
- @Override
- public String getConstructorFormat() {
- return "`%s(%s)`";
- }
-
- @Override
- public String getGenericConstructorFormat() {
- return "`%s %s(%s)`";
- }
-
- @Override
- public String getMethodFormat() {
- return "`%s %s(%s)`";
- }
-
- @Override
- public String getGenericMethodFormat() {
- return "`%s %s %s(%s)`";
- }
+// @Override
+// public String getEnumConstantFormat() {
+// return "`%s`";
+// }
+//
+// @Override
+// public String getFieldFormat() {
+// return "`%s %s`";
+// }
+//
+// @Override
+// public String getConstructorFormat() {
+// return "`%s(%s)`";
+// }
+//
+// @Override
+// public String getGenericConstructorFormat() {
+// return "`%s %s(%s)`";
+// }
+//
+// @Override
+// public String getMethodFormat() {
+// return "`%s %s(%s)`";
+// }
+//
+// @Override
+// public String getGenericMethodFormat() {
+// return "`%s %s %s(%s)`";
+// }
@Override
protected StructuralNode getMemberDescriptionContainer(StructuralNode parent) {
@@ -119,12 +139,21 @@ extends UnitFormatterAbstract {
}
@Override
- protected void appendMemberDescription(StructuralNode ul, String member, String javadoc) {
+ protected void appendMemberDescription(StructuralNode ul, String member, Document javadoc) {
val li = AsciiDocFactory.listItem((List) ul, member);
li.getRoles().add("footnote");
val openBlock = AsciiDocFactory.openBlock(li);
val javaDocBlock = AsciiDocFactory.block(openBlock);
- javaDocBlock.setSource(javadoc);
+ javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
+ }
+
+ // -- HELPER
+
+ private String memberSourceFormat(boolean addFootnote) {
+ return addFootnote
+ ? "\n %s // <.>\n"
+ : "\n %s\n";
}
+
}
diff --git a/tooling/java2adoc/src/test/java/org/apache/isis/tooling/j2adoc/test/J2AdocTest.java b/tooling/java2adoc/src/test/java/org/apache/isis/tooling/j2adoc/test/J2AdocTest.java
index b673a6f..e206ab2 100644
--- a/tooling/java2adoc/src/test/java/org/apache/isis/tooling/j2adoc/test/J2AdocTest.java
+++ b/tooling/java2adoc/src/test/java/org/apache/isis/tooling/j2adoc/test/J2AdocTest.java
@@ -51,14 +51,15 @@ class J2AdocTest {
.main();
val j2aContext = J2AdocContext
- //.javaSourceWithFootNotesFormat()
- .compactFormat()
+ .javaSourceWithFootnotesFormat()
+ //.compactFormat()
.xrefPageIdFormat("system:generated:index/%s.adoc")
.build();
analyzerConfig.getSources(JAVA)
.stream()
- .filter(source->source.toString().contains("ExecutionMode"))
+ //.filter(source->source.toString().contains("ExecutionMode"))
+ .filter(source->source.toString().contains("FactoryService"))
//.peek(source->System.out.println("parsing source: " + source))
.forEach(j2aContext::add);
diff --git a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/AnyTypeDeclaration.java b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/AnyTypeDeclaration.java
index bae1f87..417ee15 100644
--- a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/AnyTypeDeclaration.java
+++ b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/AnyTypeDeclaration.java
@@ -96,13 +96,10 @@ public final class AnyTypeDeclaration {
null,
Can.empty(),
ClassOrInterfaceDeclarations.streamPublicFieldDeclarations(classOrInterfaceDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan()),
ClassOrInterfaceDeclarations.streamPublicConstructorDeclarations(classOrInterfaceDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan()),
ClassOrInterfaceDeclarations.streamPublicMethodDeclarations(classOrInterfaceDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan())
);
}
@@ -116,16 +113,12 @@ public final class AnyTypeDeclaration {
null,
enumDeclaration,
EnumDeclarations.streamEnumConstantDeclarations(enumDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan()),
EnumDeclarations.streamPublicFieldDeclarations(enumDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan()),
EnumDeclarations.streamPublicConstructorDeclarations(enumDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan()),
EnumDeclarations.streamPublicMethodDeclarations(enumDeclaration)
- .filter(Javadocs::presentAndNotHidden)
.collect(Can.toCan())
);
}
diff --git a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/ConstructorDeclarations.java b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/ConstructorDeclarations.java
index eb26860..703175e 100644
--- a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/ConstructorDeclarations.java
+++ b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/ConstructorDeclarations.java
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.type.TypeParameter;
import org.apache.isis.commons.collections.Can;
import lombok.NonNull;
+import lombok.val;
//TODO effective public might require more context
public final class ConstructorDeclarations {
@@ -34,7 +35,10 @@ public final class ConstructorDeclarations {
* Returns given {@link ConstructorDeclaration} as normal text, without formatting.
*/
public static String toNormalizedConstructorDeclaration(final @NonNull ConstructorDeclaration cd) {
- return cd.getDeclarationAsString(false, false, true).trim();
+ val clone = cd.clone();
+ clone.getParameters()
+ .forEach(p->p.getAnnotations().clear());
+ return clone.getDeclarationAsString(false, false, true);
}
public static Can<TypeParameter> getTypeParameters(final @NonNull ConstructorDeclaration cd) {
diff --git a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
index d9015ee..9057f99 100644
--- a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
+++ b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
@@ -18,6 +18,7 @@
*/
package org.apache.isis.tooling.javamodel.ast;
+import java.util.Optional;
import java.util.stream.Stream;
import com.github.javaparser.ast.body.ConstructorDeclaration;
@@ -48,53 +49,67 @@ public final class Javadocs {
.map(tag->tag.getContent());
}
- public static boolean presentAndNotHidden(
- final @NonNull FieldDeclaration fd) {
-
- return fd.getJavadoc()
- .map(jd->!hasHidden(jd))
- .orElse(false);
+ // -- PREDICATES FOR STREAMS (PRESENT AND NOT HIDDEN)
+
+ public static boolean presentAndNotHidden(final @NonNull FieldDeclaration fd) {
+ return presentAndNotHidden(fd.getJavadoc());
}
- public static boolean presentAndNotHidden(
- final @NonNull EnumConstantDeclaration ecd) {
-
- return ecd.getJavadoc()
- .map(jd->!hasHidden(jd))
- .orElse(false);
+ public static boolean presentAndNotHidden(final @NonNull EnumConstantDeclaration ecd) {
+ return presentAndNotHidden(ecd.getJavadoc());
}
+ public static boolean presentAndNotHidden(final @NonNull ConstructorDeclaration cd) {
+ return presentAndNotHidden(cd.getJavadoc());
+ }
- public static boolean presentAndNotHidden(
- final @NonNull ConstructorDeclaration cd) {
-
- return cd.getJavadoc()
- .map(jd->!hasHidden(jd))
- .orElse(false);
+ public static boolean presentAndNotHidden(final @NonNull MethodDeclaration md) {
+ return presentAndNotHidden(md.getJavadoc());
}
- public static boolean presentAndNotHidden(
- final @NonNull MethodDeclaration md) {
-
- return md.getJavadoc()
- .map(jd->!hasHidden(jd))
- .orElse(false);
+ // -- PREDICATES FOR STREAMS (NOT EXPLICITLY HIDDEN)
+
+ public static boolean notExplicitlyHidden(final @NonNull FieldDeclaration fd) {
+ return !hasHidden(fd.getJavadoc());
}
- public static boolean hasDeprecated(
- final @NonNull Javadoc javadoc) {
-
+ public static boolean notExplicitlyHidden(final @NonNull EnumConstantDeclaration ecd) {
+ return !hasHidden(ecd.getJavadoc());
+ }
+
+ public static boolean notExplicitlyHidden(final @NonNull ConstructorDeclaration cd) {
+ return !hasHidden(cd.getJavadoc());
+ }
+
+ public static boolean notExplicitlyHidden(final @NonNull MethodDeclaration md) {
+ return !hasHidden(md.getJavadoc());
+ }
+
+ // --
+
+ public static boolean hasDeprecated(final @NonNull Javadoc javadoc) {
return streamTagsByName(javadoc, "deprecated")
.findAny()
.isPresent();
}
- public static boolean hasHidden(
- final @NonNull Javadoc javadoc) {
-
+ public static boolean hasHidden(final @NonNull Javadoc javadoc) {
return streamTagsByName(javadoc, "hidden")
.findAny()
.isPresent();
}
+ public static boolean hasHidden(final @NonNull Optional<Javadoc> javadocOptional) {
+ return javadocOptional
+ .map(Javadocs::hasHidden)
+ .orElse(false);
+ }
+
+ public static boolean presentAndNotHidden(final @NonNull Optional<Javadoc> javadocOptional) {
+ return javadocOptional
+ .map(jd->!hasHidden(jd))
+ .orElse(false);
+ }
+
+
}
diff --git a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/MethodDeclarations.java b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/MethodDeclarations.java
index aad65f1..8cbab22 100644
--- a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/MethodDeclarations.java
+++ b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/MethodDeclarations.java
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.type.TypeParameter;
import org.apache.isis.commons.collections.Can;
import lombok.NonNull;
+import lombok.val;
//TODO effective public might require more context
public final class MethodDeclarations {
@@ -35,7 +36,10 @@ public final class MethodDeclarations {
* Returns given {@link MethodDeclaration} as normal text, without formatting.
*/
public static String toNormalizedMethodDeclaration(final @NonNull MethodDeclaration md) {
- return md.getDeclarationAsString(false, false, true).trim();
+ val clone = md.clone();
+ clone.getParameters()
+ .forEach(p->p.getAnnotations().clear());
+ return clone.getDeclarationAsString(false, false, true);
}
public static Can<TypeParameter> getTypeParameters(final @NonNull MethodDeclaration md) {