diff --git a/src/avatartranslator/AvatarBlock.java b/src/avatartranslator/AvatarBlock.java index d6f7a8486e5059e5470b0e76c6626b70befbc72f..72a23608da215310722de1a3baef5c93408ce9e2 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 4ecbf561e3ec5cc739f9cea0bbe64a08accdc64b..ab9c0c902c0aa9735024160b3b5e69aaa5275052 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 259abeff8b26e2cf75cfdbce0251aadd23050333..f36645b6e4bbfc7d0b5a19fab72a9d353724f229 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 9ca6f1650461546fc11a3553c258e679fa56deca..c7381b16e7900ff80a122adaf9226f711319986c 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 4dc79ee391eb05b76a3ed974dd9594036239d4a3..cd9cf71974fc804bff2852ba48ea95423b6bfa0f 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