From 911124b92f4d4fefde4d17cf92777742f7b5b606 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Tue, 23 Jun 2009 09:46:58 +0000
Subject: [PATCH]

---
 src/translator/ActivityDiagram.java         |  2 +-
 src/translator/TURTLEModeling.java          |  8 +++---
 src/ui/DesignPanelTranslator.java           | 30 ++++++++++++++++-----
 src/ui/GTURTLEModeling.java                 |  5 ++--
 src/ui/procsd/JDialogAttributeProCSD.java   |  2 +-
 src/ui/procsd/ProactiveCSDPanel.java        |  2 +-
 src/ui/tmldd/TMLArchiBUSNode.java           |  2 +-
 src/ui/tmldd/TMLArchiBridgeNode.java        |  2 +-
 src/ui/tmldd/TMLArchiCommunicationNode.java |  2 +-
 src/ui/tmldd/TMLArchiHWANode.java           |  2 +-
 src/ui/tmldd/TMLArchiNode.java              |  2 +-
 11 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/src/translator/ActivityDiagram.java b/src/translator/ActivityDiagram.java
index 761de66585..572f6855bb 100755
--- a/src/translator/ActivityDiagram.java
+++ b/src/translator/ActivityDiagram.java
@@ -344,7 +344,7 @@ public class ActivityDiagram extends Vector{
         return new StringBuffer(s + "\n");
     }
     
-    public void RemoveAllNonReferencedElts() {
+    public void removeAllNonReferencedElts() {
         ADComponent adc;
         while((adc = hasNonReferencedElts()) != null) {
             remove(adc);
diff --git a/src/translator/TURTLEModeling.java b/src/translator/TURTLEModeling.java
index f23d68c433..6f533234b2 100755
--- a/src/translator/TURTLEModeling.java
+++ b/src/translator/TURTLEModeling.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 *
 * ludovic.apvrille AT enst.fr
 *
@@ -1726,7 +1726,7 @@ public class TURTLEModeling {
             //modified = false; // for debug -> to be removed
             i++;
         }
-        ad.RemoveAllNonReferencedElts();
+        ad.removeAllNonReferencedElts();
     }
     
     public boolean unrollComponents(ActivityDiagram ad, boolean debug) {
@@ -1891,7 +1891,7 @@ public class TURTLEModeling {
         /*System.out.println("print");
         ad.print();*/
         // Remove all non referenced elements
-        ad.RemoveAllNonReferencedElts();
+        ad.removeAllNonReferencedElts();
         
         /*System.out.println("Last print:");
         ad.print();*/
@@ -2244,7 +2244,7 @@ public class TURTLEModeling {
             //modified = false; // for debug -> to be removed
             i++;
         }
-        ad.RemoveAllNonReferencedElts();
+        ad.removeAllNonReferencedElts();
     }
     
     public boolean analyseChoiceStop(ActivityDiagram ad) {
diff --git a/src/ui/DesignPanelTranslator.java b/src/ui/DesignPanelTranslator.java
index 63eb10a2b7..f2c352f5f9 100755
--- a/src/ui/DesignPanelTranslator.java
+++ b/src/ui/DesignPanelTranslator.java
@@ -60,7 +60,7 @@ import ui.osad.*;
 
 public class DesignPanelTranslator {
 	protected TURTLEDesignPanelInterface dp;
-	protected Vector checkingErrors;
+	protected Vector checkingErrors, warnings;
 	protected CorrespondanceTGElement listE; // usual list
 	protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
 	
@@ -71,6 +71,7 @@ public class DesignPanelTranslator {
 	
 	public void reinit() {
 		checkingErrors = new Vector();
+		warnings = new Vector();
 		listE = new CorrespondanceTGElement();
 		listB = new CorrespondanceTGElement();
 	}
@@ -80,7 +81,7 @@ public class DesignPanelTranslator {
 	}
 	
 	public Vector getWarnings() {
-		return null;
+		return warnings;
 	}
 	
 	public CorrespondanceTGElement getCorrespondanceTGElement() {
@@ -116,6 +117,13 @@ public class DesignPanelTranslator {
 		checkingErrors.addElement(ce);
 	}
 	
+	private void addWarning(CheckingError ce) {
+		if (warnings == null) {
+			warnings = new Vector();
+		}
+		warnings.addElement(ce);
+	}
+	
 	
 	public void addTClasses(TURTLEDesignPanelInterface dp, Vector tclasses, String preName, TURTLEModeling tm) {
 		TDiagramPanel tdp;
@@ -367,10 +375,6 @@ public class DesignPanelTranslator {
 		while(iterator.hasNext()) {
 			tgc = (TGComponent)(iterator.next());
 			
-			/*if (tgc.getCheckableAccessibility()) {
-				
-			}*/
-			
 			if (tgc instanceof TADActionState) {
 				tadas = (TADActionState)tgc;
 				s = ((TADActionState)tgc).getAction();
@@ -900,6 +904,20 @@ public class DesignPanelTranslator {
 		}
 		// Increasing count of this panel
 		tdp.count ++;
+		
+		// Remove all elements not reachable from start state
+		int sizeb = ad.size();
+		
+		ad.removeAllNonReferencedElts();
+		int sizea = ad.size();
+		if (sizeb > sizea) {
+			CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Non reachable elements have been removed in " + t.getName());
+			ce.setTClass(t);
+			ce.setTGComponent(null);
+			ce.setTDiagramPanel(tdp);
+			addWarning(ce);
+			//System.out.println("Non reachable elements have been removed in " + t.getName());
+		}
 	}
 	
 	public void addRelations(TURTLEDesignPanelInterface dp, String prename, TURTLEModeling tm) {
diff --git a/src/ui/GTURTLEModeling.java b/src/ui/GTURTLEModeling.java
index 1530638cb6..6c3c83657f 100755
--- a/src/ui/GTURTLEModeling.java
+++ b/src/ui/GTURTLEModeling.java
@@ -1476,7 +1476,7 @@ public class GTURTLEModeling {
 
 	public boolean checkTURTLEModeling(Vector tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
 		// Builds a TURTLE modeling from diagrams
-		warnings = new Vector();
+		//warnings = new Vector();
 		//checkingErrors = null;
 		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
 		//tm = new TURTLEModeling();
@@ -1489,6 +1489,7 @@ public class GTURTLEModeling {
 
 		listE = dpt.getCorrespondanceTGElement();
 		checkingErrors = dpt.getErrors();
+		warnings = dpt.getWarnings();
 		if ((checkingErrors != null) && (checkingErrors.size() >0)){
 			return false;
 		}
@@ -1499,7 +1500,7 @@ public class GTURTLEModeling {
 			TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
 	
 			checkingErrors = tmc.syntaxAnalysisChecking();
-			warnings = tmc.getWarnings();
+			warnings.addAll(tmc.getWarnings());
 	
 			if ((checkingErrors != null) && (checkingErrors.size() > 0)){
 				return false;
diff --git a/src/ui/procsd/JDialogAttributeProCSD.java b/src/ui/procsd/JDialogAttributeProCSD.java
index 9e2b8bafeb..515022544b 100644
--- a/src/ui/procsd/JDialogAttributeProCSD.java
+++ b/src/ui/procsd/JDialogAttributeProCSD.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
  *
  * ludovic.apvrille AT enst.fr
  *
diff --git a/src/ui/procsd/ProactiveCSDPanel.java b/src/ui/procsd/ProactiveCSDPanel.java
index da1cf204d8..9ce6640991 100755
--- a/src/ui/procsd/ProactiveCSDPanel.java
+++ b/src/ui/procsd/ProactiveCSDPanel.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
  *
  * ludovic.apvrille AT enst.fr
  *
diff --git a/src/ui/tmldd/TMLArchiBUSNode.java b/src/ui/tmldd/TMLArchiBUSNode.java
index fc99c7fc17..c7ad64cc76 100755
--- a/src/ui/tmldd/TMLArchiBUSNode.java
+++ b/src/ui/tmldd/TMLArchiBUSNode.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 
 ludovic.apvrille AT enst.fr
 
diff --git a/src/ui/tmldd/TMLArchiBridgeNode.java b/src/ui/tmldd/TMLArchiBridgeNode.java
index fcb17183ef..237ed69ab5 100755
--- a/src/ui/tmldd/TMLArchiBridgeNode.java
+++ b/src/ui/tmldd/TMLArchiBridgeNode.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 
 ludovic.apvrille AT enst.fr
 
diff --git a/src/ui/tmldd/TMLArchiCommunicationNode.java b/src/ui/tmldd/TMLArchiCommunicationNode.java
index f47bffb19f..3217956d40 100755
--- a/src/ui/tmldd/TMLArchiCommunicationNode.java
+++ b/src/ui/tmldd/TMLArchiCommunicationNode.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 
 ludovic.apvrille AT enst.fr
 
diff --git a/src/ui/tmldd/TMLArchiHWANode.java b/src/ui/tmldd/TMLArchiHWANode.java
index c150ebdd8c..add92e8d30 100755
--- a/src/ui/tmldd/TMLArchiHWANode.java
+++ b/src/ui/tmldd/TMLArchiHWANode.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 
 ludovic.apvrille AT enst.fr
 
diff --git a/src/ui/tmldd/TMLArchiNode.java b/src/ui/tmldd/TMLArchiNode.java
index bc7021097e..a6ae26a641 100755
--- a/src/ui/tmldd/TMLArchiNode.java
+++ b/src/ui/tmldd/TMLArchiNode.java
@@ -1,4 +1,4 @@
-/**Copyright or � or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
 
 ludovic.apvrille AT enst.fr
 
-- 
GitLab