You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/02/07 14:53:31 UTC
[isis] 07/12: ISIS-2526: refactoring is all
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 9334707e27950d527131692d04b4a8af12cfaef3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 15:17:53 2021 +0000
ISIS-2526: refactoring is all
---
.../cli/adocfix/OrphanedIncludeStatementFixer.java | 2 +-
.../isis/tooling/cli/projdoc/ProjectDocWriter.java | 12 ++-
.../apache/isis/tooling/j2adoc/J2AdocContext.java | 6 +-
.../j2adoc/format/UnitFormatterAbstract.java | 118 ++++++++++-----------
.../isis/tooling/javamodel/ast/Javadocs.java | 56 +++++-----
5 files changed, 99 insertions(+), 95 deletions(-)
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
index 8d36b7e..0e77eb4 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
@@ -92,7 +92,7 @@ public final class OrphanedIncludeStatementFixer {
val includeLineShouldBe = expected.toAdocAsString();
if(!includeLineShouldBe.equals(include.getMatchingLine())) {
- System.out.printf("mismatch\n %s\n %s\n", includeLineShouldBe, include.getMatchingLine());
+ log.warn("mismatch\n {}\n {}\n", includeLineShouldBe, include.getMatchingLine());
correctedIncludeStatement.setValue(expected);
fixedCounter.inc();
}
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
index 33a028f..8305783 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
@@ -33,7 +33,9 @@ import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
import lombok.NonNull;
import lombok.SneakyThrows;
import lombok.val;
+import lombok.extern.log4j.Log4j2;
+@Log4j2
final class ProjectDocWriter {
@SneakyThrows
@@ -64,7 +66,7 @@ final class ProjectDocWriter {
// write system overview
val overviewFile = new File(pagesFolder, overview.getSystemOverviewFilename());
- System.out.printf("writing system overview: %s%n", overviewFile.getName());
+ log.info("writing system overview: {}", overviewFile.getName());
docWriter.accept(systemSummaryAdoc, overviewFile);
++writeCount;
}
@@ -78,7 +80,7 @@ final class ProjectDocWriter {
!fileName.equals(overview.getSystemOverviewFilename());
})
.stream()
- .peek(adocFile->System.out.printf("deleting file: %s%n", adocFile.getName()))
+ .peek(adocFile->log.debug("deleting file: {}", adocFile.getName()))
.peek(__->deleteCount.inc())
.forEach(_Files::deleteFile);
@@ -90,7 +92,7 @@ final class ProjectDocWriter {
val adocIndexFile = adocDestinationFileForUnit(unit, global, overview, index);
- System.out.printf("writing file: %s%n", adocIndexFile.getName());
+ log.info("writing file: {}", adocIndexFile.getName());
docWriter.accept(
unit.toAsciiDoc(j2aContext),
@@ -100,8 +102,8 @@ final class ProjectDocWriter {
}
// summary
- System.out.printf(
- "ProjectDocWriter: all done. (deleted: %d, written: %d)%n",
+ log.info(
+ "ProjectDocWriter: all done. (deleted: {}, written: {})",
deleteCount.getValue(), writeCount);
}
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 a6f1829..6df2109 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
@@ -272,10 +272,10 @@ public class J2AdocContext {
private static void logIfEmptyOrAmbiguous(Can<J2AdocUnit> units, String doingWhat) {
if(units.isEmpty()) {
- System.out.printf("%s yielded no match %n", doingWhat);
+ log.warn("{} yielded no match %n", doingWhat);
} else if(units.isCardinalityMultiple()) {
- System.err.printf("%s was ambiguous with results: %n", doingWhat);
- units.forEach(unit->System.err.printf("\t%s%n", unit.toString()));
+ log.warn("{} was ambiguous with results: ", doingWhat);
+ units.forEach(unit->log.warn("\t{}", unit.toString()));
}
}
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 7e6fba0..a10716c3 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
@@ -19,11 +19,18 @@
package org.apache.isis.tooling.j2adoc.format;
import java.util.Optional;
+import java.util.function.Function;
+
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavadoc;
import org.asciidoctor.ast.Document;
import org.asciidoctor.ast.List;
import org.asciidoctor.ast.StructuralNode;
+import org.apache.isis.commons.collections.Can;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.tooling.j2adoc.J2AdocContext;
import org.apache.isis.tooling.j2adoc.J2AdocUnit;
@@ -81,13 +88,23 @@ implements UnitFormatter {
protected Optional<String> title(final J2AdocUnit unit) {
return Optional.of(
- String.format("%s : _%s_",
- unit.getFriendlyName(),
- unit.getDeclarationKeywordFriendlyName().toLowerCase()));
+ String.format(formatFor(unit),
+ unit.getFriendlyName()));
+ }
+
+ private static String formatFor(J2AdocUnit unit) {
+ switch (unit.getTypeDeclaration().getKind()) {
+ case ANNOTATION: return "@%s";
+ case CLASS: return "%s";
+ case ENUM: return "%s _(enum)_";
+ case INTERFACE: return "%s _(interface)_";
+ default:
+ throw new IllegalArgumentException(String.format(
+ "unknown kind: %s", unit.getTypeDeclaration().getKind()));
+ }
}
protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
-
unit.getJavadoc()
.filter(javadoc->!Javadocs.hasHidden(javadoc))
.map(javadoc->getConverter().javadoc(javadoc, unit))
@@ -107,74 +124,49 @@ implements UnitFormatter {
javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
}
- protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode parent) {
+ protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
- val ul = getMemberDescriptionContainer(parent);
+ val ul = getMemberDescriptionContainer(doc);
- unit.getTypeDeclaration().getEnumConstantDeclarations().stream()
- .filter(Javadocs::presentAndNotHidden)
- .forEach(ecd->{
- ecd.getJavadoc()
- .ifPresent(javadoc->{
-
- appendMemberDescription(ul,
- getConverter().enumConstantDeclaration(ecd),
- getConverter().javadoc(javadoc, unit));
- });
- });
-
- unit.getTypeDeclaration().getPublicFieldDeclarations().stream()
- .filter(Javadocs::presentAndNotHidden)
- .forEach(fd->{
-
- fd.getJavadoc()
- .ifPresent(javadoc->{
-
- appendMemberDescription(ul,
- getConverter().fieldDeclaration(fd, unit),
- getConverter().javadoc(javadoc, unit));
- });
-
- });
+ appendMemberDescriptions(ul, unit,
+ unit.getTypeDeclaration().getEnumConstantDeclarations(),
+ decl -> getConverter().enumConstantDeclaration(decl));
- unit.getTypeDeclaration().getAnnotationMemberDeclarations().stream()
- .filter(Javadocs::presentAndNotHidden)
- .forEach(ecd->{
- ecd.getJavadoc()
- .ifPresent(javadoc->{
+ appendMemberDescriptions(ul, unit,
+ unit.getTypeDeclaration().getPublicFieldDeclarations(),
+ decl -> getConverter().fieldDeclaration(decl, unit));
- appendMemberDescription(ul,
- getConverter().annotationMemberDeclaration(ecd, unit),
- getConverter().javadoc(javadoc, unit));
- });
- });
+ appendMemberDescriptions(ul, unit,
+ unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
+ decl -> getConverter().annotationMemberDeclaration(decl, unit));
- unit.getTypeDeclaration().getPublicConstructorDeclarations().stream()
- .filter(Javadocs::presentAndNotHidden)
- .forEach(cd->{
+ appendMemberDescriptions(ul, unit,
+ unit.getTypeDeclaration().getPublicConstructorDeclarations(),
+ decl -> getConverter().constructorDeclaration(decl, unit));
- cd.getJavadoc()
- .ifPresent(javadoc->{
+ appendMemberDescriptions(ul, unit,
+ unit.getTypeDeclaration().getPublicMethodDeclarations(),
+ decl -> getConverter().methodDeclaration(decl, unit));
- appendMemberDescription(ul,
- getConverter().constructorDeclaration(cd, unit),
- getConverter().javadoc(javadoc, unit));
- });
+ val titleBlock = block(doc);
+ titleBlock.setSource("== Members");
+ }
- });
+ private <T extends NodeWithJavadoc<?>> void appendMemberDescriptions(
+ final StructuralNode container,
+ final J2AdocUnit unit,
+ final Can<T> declarations,
+ final Function<T, String> memberDescriber) {
- unit.getTypeDeclaration().getPublicMethodDeclarations().stream()
+ declarations.stream()
.filter(Javadocs::presentAndNotHidden)
- .forEach(md->{
-
- md.getJavadoc()
+ .forEach(nwj->{
+ nwj.getJavadoc()
.ifPresent(javadoc->{
-
- appendMemberDescription(ul,
- getConverter().methodDeclaration(md, unit),
- getConverter().javadoc(javadoc, unit));
+ appendMemberDescription(container,
+ memberDescriber.apply(nwj),
+ getConverter().javadoc(javadoc, unit));
});
-
});
}
@@ -190,7 +182,6 @@ implements UnitFormatter {
val doc = AsciiDocFactory.doc();
// -- title
-
if(!j2aContext.isSkipTitleHeader()) {
title(unit)
.ifPresent(doc::setTitle);
@@ -201,10 +192,15 @@ implements UnitFormatter {
_Strings.nonEmpty(getContext().getLicenseHeader())
.ifPresent(notice->AsciiDocFactory.attrNotice(doc, notice));
+
// -- intro
intro(unit, doc);
+ // == API
+ val titleBlock = block(doc);
+ titleBlock.setSource("== API");
+
// -- java source
javaSource(unit)
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 ef839a6..c5ae360 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
@@ -22,10 +22,12 @@ import java.util.Optional;
import java.util.stream.Stream;
import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
import com.github.javaparser.ast.body.ConstructorDeclaration;
import com.github.javaparser.ast.body.EnumConstantDeclaration;
import com.github.javaparser.ast.body.FieldDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavadoc;
import com.github.javaparser.javadoc.Javadoc;
import com.github.javaparser.javadoc.JavadocBlockTag;
import com.github.javaparser.javadoc.description.JavadocDescription;
@@ -37,88 +39,92 @@ public final class Javadocs {
public static Stream<JavadocBlockTag> streamTagsByName(
final @NonNull Javadoc javadoc,
final @NonNull String tagName) {
-
+
return javadoc.getBlockTags().stream()
.filter(tag->tag.getTagName().equals(tagName));
}
-
+
public static Stream<JavadocDescription> streamTagContent(
final @NonNull Javadoc javadoc,
final @NonNull String tagName) {
-
+
return streamTagsByName(javadoc, tagName)
.map(tag->tag.getContent());
}
-
+
// -- PREDICATES FOR STREAMS (PRESENT AND NOT HIDDEN)
-
+
+ public static boolean presentAndNotHidden(final @NonNull NodeWithJavadoc<?> nwj) {
+ return presentAndNotHidden(nwj.getJavadoc());
+ }
+
public static boolean presentAndNotHidden(final @NonNull AnnotationMemberDeclaration amd) {
return presentAndNotHidden(amd.getJavadoc());
}
-
+
public static boolean presentAndNotHidden(final @NonNull FieldDeclaration fd) {
return presentAndNotHidden(fd.getJavadoc());
}
-
+
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 MethodDeclaration md) {
return presentAndNotHidden(md.getJavadoc());
}
-
+
// -- PREDICATES FOR STREAMS (NOT EXPLICITLY HIDDEN)
-
+
public static boolean notExplicitlyHidden(final @NonNull AnnotationMemberDeclaration amd) {
return !hasHidden(amd.getJavadoc());
}
-
+
public static boolean notExplicitlyHidden(final @NonNull FieldDeclaration fd) {
return !hasHidden(fd.getJavadoc());
}
-
+
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")
+ return streamTagsByName(javadoc, "deprecated")
.findAny()
.isPresent();
}
-
+
public static boolean hasHidden(final @NonNull Javadoc javadoc) {
- return streamTagsByName(javadoc, "hidden")
+ 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);
}
-
-
+
+
}