From bc4f7fcd894e5806770180bb92da22f4db843a89 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Mon, 10 Nov 2014 10:54:58 +0000
Subject: [PATCH] First test on split AD

---
 src/tmltranslator/TMLCP.java                  |  1 +
 .../tmlcp/TMLCPActivityDiagram.java           | 22 +++++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/tmltranslator/TMLCP.java b/src/tmltranslator/TMLCP.java
index adb280bccc..f3214b8198 100755
--- a/src/tmltranslator/TMLCP.java
+++ b/src/tmltranslator/TMLCP.java
@@ -332,6 +332,7 @@ public class TMLCP extends TMLElement {
 	for(TMLCPActivityDiagram diag: otherCPs) {
 	    all.addAll(diag.splitADs());
 	}
+	otherCPs.addAll(all);
     }
 
     public void printDataStructure()    {
diff --git a/src/tmltranslator/tmlcp/TMLCPActivityDiagram.java b/src/tmltranslator/tmlcp/TMLCPActivityDiagram.java
index 89444dc48b..e288adb07e 100755
--- a/src/tmltranslator/tmlcp/TMLCPActivityDiagram.java
+++ b/src/tmltranslator/tmlcp/TMLCPActivityDiagram.java
@@ -212,6 +212,10 @@ public class TMLCPActivityDiagram  extends TMLElement {
         start = _elt;
     }
 
+    public TMLCPElement getStartElement() {
+	return start;
+    }
+
     public void addTMLCPElement(TMLCPElement _elt) {
         elements.add(_elt);
     }
@@ -307,6 +311,8 @@ public class TMLCPActivityDiagram  extends TMLElement {
         int id = 0;
         TMLCPActivityDiagram diag;
 
+	TraceManager.addDev("Splitting AD: " + getName());
+
         // For each junction, we create a new AD
         ArrayList<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>();
 	ArrayList<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>();
@@ -320,6 +326,7 @@ public class TMLCPActivityDiagram  extends TMLElement {
 		diag.setStartElement(start);
 		diag.addTMLCPElement(start);
                 refs.put((TMLCPJunction)elt, diag);
+		TraceManager.addDev("Adding a new diag named: " + diag.getName());
             }
         }
 
@@ -345,7 +352,7 @@ public class TMLCPActivityDiagram  extends TMLElement {
 	    
 	    // To be modified-> add elements from RefADs
 	    // Also, avoid to add already met elements
-            addElementsFromJunction(refAD, start, diag, refs, toBeRemoved);
+            addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved);
         }
 
 	// Removing elements from main diagram
@@ -368,14 +375,15 @@ public class TMLCPActivityDiagram  extends TMLElement {
 	}
 	
 	for(TMLCPElement elt: originInOld.getNextElements()) {
-	    if (elt instanceof TMLCPRefAD) {
+	    TraceManager.addDev("Exploring elt (0):" + elt.getName());
+	    if (elt instanceof TMLCPJunction) {
 		// Must replace the junction by a ref to an AD
-		//TMLCPActivityDiagram toAD = refs.get((TMLCPJunction)elt);
-		//TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
-		newDiag.addTMLCPElement(elt);
-		originInNew.setNextElement(elt);
+		TMLCPActivityDiagram toAD = refs.get((TMLCPJunction)elt);
+		TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
+		newDiag.addTMLCPElement(ref);
+		originInNew.setNextElement(ref);
 	    } else {
-		
+		TraceManager.addDev("Exploring elt (1):" + elt.getName());
 		if (originInOld != originInNew) {
 		    originInNew.addNextElement(elt);
 		}
-- 
GitLab