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.