From ba74f169ba832f9880f41efe58ecc5711dda4da5 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Thu, 28 Feb 2013 17:04:20 +0000
Subject: [PATCH] Update on code generzation

---
 src/avatartranslator/AvatarBlock.java         | 17 ++++++++++++++
 src/avatartranslator/AvatarTransition.java    | 14 +++++++++++
 src/ui/AvatarDesignPanelTranslator.java       |  4 ++++
 src/ui/avatarsmd/AvatarSMDConnector.java      |  9 ++++++++
 src/ui/avatarsmd/AvatarSMDTransitionInfo.java | 23 +++++++++++++++----
 5 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/src/avatartranslator/AvatarBlock.java b/src/avatartranslator/AvatarBlock.java
index d6f7a8486e..72a23608da 100644
--- a/src/avatartranslator/AvatarBlock.java
+++ b/src/avatartranslator/AvatarBlock.java
@@ -58,6 +58,8 @@ public class AvatarBlock extends AvatarElement {
 	private LinkedList<AvatarSignal> signals;
 	private AvatarStateMachine asm;
 	
+	private String filesToInclude;
+	
 	
     public AvatarBlock(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -66,7 +68,22 @@ public class AvatarBlock extends AvatarElement {
 		signals = new LinkedList<AvatarSignal>();
 		asm = new AvatarStateMachine("statemachineofblock__" + _name, _referenceObject);
     }
+    
+    // For code generation
+    public void addFilesToInclude(String _files) {
+    	if (filesToInclude == null) {
+    		filesToInclude = _files;
+    		return;
+    	}
+    	filesToInclude += _files;
+    }
+    
+    public String getFilesToInclude() {
+    	return filesToInclude;
+    }
 	
+    
+    // Relation with parent block
 	public void setFather(AvatarBlock _father) {
 		father = _father;
 	}
diff --git a/src/avatartranslator/AvatarTransition.java b/src/avatartranslator/AvatarTransition.java
index 4ecbf561e3..ab9c0c902c 100644
--- a/src/avatartranslator/AvatarTransition.java
+++ b/src/avatartranslator/AvatarTransition.java
@@ -54,6 +54,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
 	private String guard = "[ ]";
 	private String minDelay = "", maxDelay = "";
 	private String minCompute = "", maxCompute = "";
+	private String codeToExecute;
 	
 	private LinkedList<String> actions; // actions on variable, or method call
 	
@@ -61,6 +62,19 @@ public class AvatarTransition extends AvatarStateMachineElement {
         super(_name, _referenceObject);
 		actions = new LinkedList<String>();
     }
+    
+    // For code generation
+    public void addExecutableCode(String _code) {
+    	if (codeToExecute == null) {
+    		codeToExecute = _code;
+    		return;
+    	}
+    	codeToExecute += _code;
+    }
+    
+    public String getExecutableCode() {
+    	return codeToExecute;
+    }
 	
 	public String getGuard() {
 		return guard;
diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java
index 259abeff8b..f36645b6e4 100644
--- a/src/ui/AvatarDesignPanelTranslator.java
+++ b/src/ui/AvatarDesignPanelTranslator.java
@@ -1174,6 +1174,10 @@ public class AvatarDesignPanelTranslator {
 							at.setComputes(tmp1, tmp2);
 						}
 						
+						// Executable code
+						at.addExecutableCode(asmdco.getCodeToInclude());
+						_ab.addFilesToInclude(asmdco.getFilesToInclude());	
+						
 						// Actions
 						vs = asmdco.getActions();
 						for(String s: vs) {
diff --git a/src/ui/avatarsmd/AvatarSMDConnector.java b/src/ui/avatarsmd/AvatarSMDConnector.java
index 9ca6f16504..c7381b16e7 100644
--- a/src/ui/avatarsmd/AvatarSMDConnector.java
+++ b/src/ui/avatarsmd/AvatarSMDConnector.java
@@ -178,6 +178,15 @@ public  class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints
 	public String getComputeMaxDelay() {
 		return getAvatarSMDTransitionInfo().getComputeMaxDelay();
 	}
+	
+	
+	public String getFilesToInclude() {
+		return getAvatarSMDTransitionInfo().getFilesToInclude();
+	}
+	
+	public String getCodeToInclude() {
+		return getAvatarSMDTransitionInfo().getCodeToInclude();
+	}
 }
 
 
diff --git a/src/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
index 4dc79ee391..cd9cf71974 100755
--- a/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
+++ b/src/ui/avatarsmd/AvatarSMDTransitionInfo.java
@@ -418,11 +418,24 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent {
 		return listOfActions;
 	}
 	
-	public String[] getFilesToInclude() {
-		return filesToInclude;
+	public String getFilesToInclude() {
+		if (filesToInclude == null) {
+			return null;
+		}
+		String ret = "";
+		for(int i=0; i<filesToInclude.length; i++) {
+			ret += filesToInclude[i] + "\n";
+		}
+		return ret;
 	}
-	
-	public String[] getCodeToInclude() {
-		return codeToInclude;
+	public String getCodeToInclude() {
+		if (codeToInclude == null) {
+			return null;
+		}
+		String ret = "";
+		for(int i=0; i<codeToInclude.length; i++) {
+			ret += codeToInclude[i] + "\n";
+		}
+		return ret;
 	}
 }
\ No newline at end of file
-- 
GitLab