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/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new d5b3dfc677 CAUSEWAY-3404: minor graph to text improvements
d5b3dfc677 is described below

commit d5b3dfc67717f2cc6e38e223b6ee1e3e1198028c
Author: Andi Huber <[email protected]>
AuthorDate: Fri Jan 19 19:55:06 2024 +0100

    CAUSEWAY-3404: minor graph to text improvements
---
 .../objgraph/d3js/ObjectGraphRendererEdgeListing.java   | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/valuetypes/asciidoc/builder/src/main/java/org/apache/causeway/valuetypes/asciidoc/builder/objgraph/d3js/ObjectGraphRendererEdgeListing.java
 
b/valuetypes/asciidoc/builder/src/main/java/org/apache/causeway/valuetypes/asciidoc/builder/objgraph/d3js/ObjectGraphRendererEdgeListing.java
index 5755940013..c8b0dee0a7 100644
--- 
a/valuetypes/asciidoc/builder/src/main/java/org/apache/causeway/valuetypes/asciidoc/builder/objgraph/d3js/ObjectGraphRendererEdgeListing.java
+++ 
b/valuetypes/asciidoc/builder/src/main/java/org/apache/causeway/valuetypes/asciidoc/builder/objgraph/d3js/ObjectGraphRendererEdgeListing.java
@@ -24,6 +24,7 @@ import 
org.apache.causeway.applib.services.metamodel.objgraph.ObjectGraph;
 import org.apache.causeway.commons.collections.ImmutableEnumSet;
 import org.apache.causeway.commons.functional.IndexedConsumer;
 import org.apache.causeway.commons.graph.GraphUtils.GraphKernel;
+import org.apache.causeway.commons.internal.base._Strings;
 
 import lombok.RequiredArgsConstructor;
 
@@ -42,25 +43,27 @@ public class ObjectGraphRendererEdgeListing implements 
ObjectGraph.Renderer {
 
         var listOfWeaklyConnectedEdges = listOfWeaklyConnectedNodes.stream()
             
.map(connectedObjectIndexes->renderConnectedSubGraph(objGraph.subGraph(connectedObjectIndexes)))
+            .filter(_Strings::isNotEmpty)
             .collect(Collectors.joining(",\n"));
         sb.append(listOfWeaklyConnectedEdges);
     }
 
-    private String renderConnectedSubGraph(final ObjectGraph objGraph) {
-        final int maxRelIndex = objGraph.relations().size() - 1;
+    private String renderConnectedSubGraph(final ObjectGraph subGraph) {
+        final int maxRelIndex = subGraph.relations().size() - 1;
+        if(maxRelIndex<0) return null;
 
         var sb = new StringBuilder();
-        sb.append("{");
+        sb.append("edges = {");
 
-        objGraph.relations().forEach(IndexedConsumer.zeroBased((i, rel)->{
-            var fromId = rel.from().id();
-            var toId = rel.to().id();
+        subGraph.relations().forEach(IndexedConsumer.zeroBased((i, rel)->{
+            var fromId = rel.from().name();
+            var toId = rel.to().name();
             sb.append(String.format("%s->%s", fromId, toId));
             if(i<maxRelIndex) sb.append(",");
             if(i%8==7) sb.append("\n");
         }));
 
-        sb.append("}").append("\n");
+        sb.append("}");
 
         return sb.toString();
     }

Reply via email to