From 73f222e48b2f78f5ec6f39d492407aebefb955fb Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Fri, 22 Mar 2024 17:47:47 +0100
Subject: [PATCH] Addint toTextFormat for UCD and BD

---
 .../java/avatartranslator/AvatarBlock.java    | 24 +++++++++++++++++
 .../avatartranslator/AvatarSpecification.java | 26 +++++++++++++++++++
 .../avatartranslator/AvatarStateMachine.java  | 25 ++++++++++++++++++
 src/main/java/ui/GTURTLEModeling.java         |  8 +++++-
 4 files changed, 82 insertions(+), 1 deletion(-)

diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java
index c5dbcc7a2e..5d77ff1597 100644
--- a/src/main/java/avatartranslator/AvatarBlock.java
+++ b/src/main/java/avatartranslator/AvatarBlock.java
@@ -378,6 +378,30 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         return sb.toString();
     }
 
+    public String toTextFormat() {
+        StringBuffer sb = new StringBuffer("block:" + getName() + " \n");
+        if (getFather() != null) {
+            sb.append("  subblock of: " + getFather().getName() + "\n");
+        }
+        for (AvatarAttribute attribute : attributes) {
+            sb.append("  attribute: " + attribute.toString() + "\n");
+        }
+        for (AvatarMethod method : methods) {
+            sb.append("  method: " + method.toString() +  "\n");
+        }
+        for (AvatarSignal signal : signals) {
+            sb.append("  signal: " + signal.toString() + "\n");
+        }
+        if (asm != null) {
+            sb.append("State machine:\n");
+            sb.append(asm.toStringRecursive());
+        } else {
+            sb.append("No state machine");
+        }
+
+        return sb.toString();
+    }
+
     public String toShortString() {
         //Thread.currentThread().dumpStack();
         StringBuffer sb = new StringBuffer("block:" + getName() + " ID=" + getID() + " \n");
diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java
index 35e9c6b5ee..2e7e65dd44 100644
--- a/src/main/java/avatartranslator/AvatarSpecification.java
+++ b/src/main/java/avatartranslator/AvatarSpecification.java
@@ -817,6 +817,32 @@ public class AvatarSpecification extends AvatarElement implements IBSParamSpec {
         return sb.toString();
     }
 
+    public String toTextFormat() {
+        //Thread.currentThread().dumpStack();
+        StringBuffer sb = new StringBuffer("Blocks:\n");
+        //TraceManager.addDev("TS Block");
+        for (AvatarBlock block : blocks) {
+            sb.append("*** " + block.toTextFormat() + "\n");
+
+        }
+        //TraceManager.addDev("TS Relations");
+        sb.append("\nRelations:\n");
+        for (AvatarRelation relation : relations) {
+            sb.append("\tRelation:" + relation.toString() + "\n");
+        }
+        sb.append("\nPragmas:\n");
+        for (AvatarPragma pragma : pragmas) {
+            sb.append("\tPragma:" + pragma.toString() + "\n");
+        }
+        for (AvatarConstant constant : constants) {
+            sb.append("\tConstant:" + constant.toString() + "\n");
+        }
+
+        //TraceManager.addDev("TS All done");
+
+        return sb.toString();
+    }
+
     public String toShortString() {
         //TraceManager.addDev("To Short String");
         //Thread.currentThread().dumpStack();
diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java
index 518777832d..a486951fa3 100644
--- a/src/main/java/avatartranslator/AvatarStateMachine.java
+++ b/src/main/java/avatartranslator/AvatarStateMachine.java
@@ -444,6 +444,15 @@ public class AvatarStateMachine extends AvatarElement {
         return toStringRecursiveElt(ass);
     }
 
+    public String toTextFormat() {
+        AvatarStartState ass = getStartState();
+        if (ass == null) {
+            return "Empty state machine";
+        }
+
+        return toTextFormatElt(ass);
+    }
+
     public String toStringRecursiveElt(AvatarStateMachineElement _asme) {
         String ret = "";
         ret += "* " + _asme.toStringExtendedID() + "\n";
@@ -460,6 +469,22 @@ public class AvatarStateMachine extends AvatarElement {
 
     }
 
+    public String toTextFormatElt(AvatarStateMachineElement _asme) {
+        String ret = "";
+        ret += "* " + _asme.toStringExtendedID() + "\n";
+
+        for (AvatarStateMachineElement asme : _asme.getNexts()) {
+            ret += "\tnext: " + asme.toStringExtendedID() + "\n";
+
+        }
+        for (AvatarStateMachineElement asme : _asme.getNexts()) {
+            ret += toTextFormatElt(asme);
+        }
+
+        return ret;
+
+    }
+
 
     // Add missing implicit states.
     public void makeFullStates(AvatarBlock _block) {
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index 6114bac1de..aaa8d1f222 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -10413,7 +10413,7 @@ public class GTURTLEModeling {
                             mapOfElements.put(tgc, aucdc);
                             aucd.addConnection(aucdc);
 
-                            if (tgc instanceof TGConnectorUC) {
+                            if (tgc instanceof TGConnectorUseCase) {
                                 aucdc.type = AvatarUCDConnection.CONNECTION.WITH_ACTOR;
                             }
 
@@ -10434,6 +10434,12 @@ public class GTURTLEModeling {
             }
 
             return aucd.toString();
+
+        } else if (_tdp instanceof AvatarBDPanel) {
+            if (avatarspec != null) {
+                return avatarspec.toTextFormat();
+            }
+
         }
         return null;
     }
-- 
GitLab