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 2021/02/08 13:37:37 UTC
[isis] 01/02: ISIS-2520: adds type params to rendered java sources
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
commit 0258841d82b09e641621f40722616ba802840cfd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 8 14:37:04 2021 +0100
ISIS-2520: adds type params to rendered java sources
---
.../isis/tooling/j2adoc/format/Snippets.java | 5 ++--
.../j2adoc/format/UnitFormatterAbstract.java | 2 +-
.../format/UnitFormatterWithSourceAndCallouts.java | 31 ----------------------
.../format/UnitFormatterWithSourceAndSections.java | 2 +-
.../tooling/javamodel/ast/AnyTypeDeclaration.java | 15 +++++++++++
5 files changed, 20 insertions(+), 35 deletions(-)
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
index f9c29b8..eb09e44 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
@@ -58,9 +58,10 @@ public class Snippets {
public static String javaSourceFor(J2AdocUnit unit) {
val buf = new StringBuilder();
- buf.append(String.format("%s %s {\n",
+ buf.append(String.format("%s %s%s {\n",
unit.getDeclarationKeyword(),
- unit.getSimpleName()));
+ unit.getSimpleName(),
+ unit.getTypeDeclaration().getTypeParametersAsString()));
appendJavaSourceMemberFormat(buf,
unit.getTypeDeclaration().getEnumConstantDeclarations(),
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 1efea0a..b47390c 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
@@ -184,7 +184,7 @@ implements UnitFormatter {
/**
* Hook method (with empty default implementation)
- * @param unit
+ * @param unit - the containing java unit (java source code model)
*/
protected Optional<String> outro(final J2AdocUnit unit) {
return Optional.empty();
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java
index 0650d27..d3625ae 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java
@@ -80,36 +80,5 @@ extends UnitFormatterAbstract {
}
- //XXX java language syntax (for callout text), but not used any more
-//
-// @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)`";
-// }
}
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java
index 3b646e0..12ebc74 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java
@@ -162,7 +162,7 @@ extends UnitFormatterAbstract {
* javadoc into Asciidoc.
*
* @param container - the List within the Asciidoc document to append to.
- * @param unit - the containing java unit
+ * @param unit - the containing java unit (java source code model)
* @param declarations - the collection of {@link NodeWithJavadoc declarations} to process
* @param memberRepresenter - encodes which parts of the member are to be pulled out into a representation
* @param javadoc2Asciidocker - strategy for converting each node's javadoc into some Asciidoc
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 870bf2e..0a24ac3 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
@@ -19,6 +19,7 @@
package org.apache.isis.tooling.javamodel.ast;
import java.util.Optional;
+import java.util.stream.Collectors;
import com.github.javaparser.ast.CompilationUnit;
import com.github.javaparser.ast.ImportDeclaration;
@@ -34,6 +35,7 @@ import com.github.javaparser.ast.body.FieldDeclaration;
import com.github.javaparser.ast.body.MethodDeclaration;
import com.github.javaparser.ast.body.TypeDeclaration;
import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName;
+import com.github.javaparser.ast.type.TypeParameter;
import com.github.javaparser.javadoc.Javadoc;
import org.apache.isis.commons.collections.Can;
@@ -183,6 +185,19 @@ public final class AnyTypeDeclaration {
public boolean hasIndexDirective() {
return TypeDeclarations.hasIndexDirective(td);
}
+
+ public Can<TypeParameter> getTypeParameters() {
+ return TypeDeclarations.getTypeParameters(td);
+ }
+
+ public String getTypeParametersAsString() {
+ val typeParameters = getTypeParameters();
+ return typeParameters.isEmpty()
+ ? ""
+ : String.format("<%s>", typeParameters.stream()
+ .map(tp->tp.getNameAsString())
+ .collect(Collectors.joining(", ")));
+ }
/**
* Returns the recursively resolved (nested) type name.