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