Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZakir Meer2017-11-02 11:53:33 +0000
committerZakir Meer2017-11-02 11:53:33 +0000
commit3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31 (patch)
treeb67e5de33f541c0b53c3cf5a5572b150f115b205
parentbf4d33fdfc82260d504ef9a5628ae4f04d7015e9 (diff)
downloadorg.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.tar.gz
org.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.tar.xz
org.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.zip
added code of M2T transformation
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF2
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml26
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend40
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2t/templates/M2T_Output_Transformer.xtend36
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2t/transformation/core/configuration/M2TTransformation.java50
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF2
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF2
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF2
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties1
-rw-r--r--eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF2
10 files changed, 140 insertions, 23 deletions
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF
index ae5e443..79d6e5a 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Transformation
Bundle-SymbolicName: com.bosch.m2m.app4mc.m2m.transformation.core;singleton:=true
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: BOSCH
+Bundle-Vendor: Eclipse.org
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: com.google.inject;bundle-version="3.0.0",
org.apache.log4j;bundle-version="1.2.15",
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml
index 1e44215..9f26102 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/plugin.xml
@@ -1,21 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
- <extension
- point="org.eclipse.app4mc.transformation.extensions.m2m">
- <m2m
- class="com.bosch.m2m.app4mc.m2m.transformation.core.configuration.M2MTransformation"
- enabled="true"
- id="com.bosch.m2m.app4mc.simulation.generic.transformation.m2m">
- </m2m>
- </extension>
- <extension
- point="org.eclipse.app4mc.transformation.extensions.module">
- <module
- class="com.bosch.m2m.app4mc.m2m.transformation.core.module.DefaultM2MInjectorModule"
- enabled="true"
- id="com.bosch.m2m.app4mc.m2m.transformation.core.module1">
- </module>
- </extension>
-
+ <extension point="org.eclipse.app4mc.transformation.extensions.m2m">
+ <m2m class="com.bosch.m2m.app4mc.m2m.transformation.core.configuration.M2MTransformation" enabled="true" id="com.bosch.m2m.app4mc.simulation.generic.transformation.m2m"/>
+ </extension>
+ <extension point="org.eclipse.app4mc.transformation.extensions.m2t">
+ <m2t class="com.bosch.m2m.app4mc.m2t.transformation.core.configuration.M2TTransformation" enabled="false" id="org.eclipse.app4mc.m2m.transformation.core.m2t1"/>
+ </extension>
+ <extension point="org.eclipse.app4mc.transformation.extensions.module">
+ <module class="com.bosch.m2m.app4mc.m2m.transformation.core.module.DefaultM2MInjectorModule" enabled="true" id="com.bosch.m2m.app4mc.m2m.transformation.core.module1"/>
+ </extension>
</plugin>
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend
index 4426b07..b0dcf1d 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2m/templates/AmaltheaTransformer.xtend
@@ -1,12 +1,15 @@
package com.bosch.m2m.app4mc.m2m.transformation.core.m2m.templates
import com.google.inject.Inject
+import java.io.BufferedWriter
import java.io.File
+import java.io.FileWriter
+import org.eclipse.app4mc.SampleSimulation.SimulationFactory
import org.eclipse.app4mc.amalthea.model.Amalthea
import org.eclipse.app4mc.transformation.extensions.base.templates.RootTransformer
import org.eclipse.emf.common.util.URI
import org.eclipse.emf.ecore.resource.ResourceSet
-import org.eclipse.app4mc.SampleSimulation.SimulationFactory
+import com.bosch.m2m.app4mc.m2m.transformation.core.m2t.templates.M2T_Output_Transformer
class AmaltheaTransformer extends RootTransformer{
@@ -24,13 +27,48 @@ class AmaltheaTransformer extends RootTransformer{
@Inject extension MappingTransformer mt
+ override m2tTransformation(ResourceSet inputResourceSet ) {
+ var int fileIndex=1
+ for(resource : inputResourceSet.resources){
+ for(content : resource.contents){
+ //TODO: content is a Amalthea model
+ //check javadoc : https://www.eclipse.org/xtend/documentation/204_activeannotations.html#active-annotations-expression
+ logger.info("Processing file : "+resource.URI)
+ var String outputFileName=getProperty("m2t_file");
+ var outputFile=new File(outputFileName)
+
+ outputFile.parentFile.mkdirs
+
+ outputFile.createNewFile
+
+ val scriptGenerator=new M2T_Output_Transformer
+
+ if(content instanceof Amalthea){
+ val scriptContent = scriptGenerator.generateOutputTextFile(content)
+
+ /*saving buffer into file */
+ val bufferedWriter=new BufferedWriter(new FileWriter(outputFile))
+ bufferedWriter.write(scriptContent)
+ bufferedWriter.close
+
+ }
+
+ //TODO: save the file here
+
+ logger.info("Python model file generated at : "+ outputFileName)
+
+ }
+ }
+
+ }
override m2mTransformation(ResourceSet inputResourceSet, ResourceSet outputResourceSet) {
var int fileIndex=1
for(resource : inputResourceSet.resources){
for(content : resource.contents){
+ //content is a Amalthea model
logger.info("Processing file : "+resource.URI)
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2t/templates/M2T_Output_Transformer.xtend b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2t/templates/M2T_Output_Transformer.xtend
new file mode 100644
index 0000000..0375191
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2m/transformation/core/m2t/templates/M2T_Output_Transformer.xtend
@@ -0,0 +1,36 @@
+package com.bosch.m2m.app4mc.m2m.transformation.core.m2t.templates
+
+import org.eclipse.app4mc.amalthea.model.Amalthea
+import org.eclipse.app4mc.transformation.extensions.base.templates.AbstractTransformer
+import org.eclipse.app4mc.amalthea.model.CallSequence
+import org.eclipse.app4mc.amalthea.model.TaskRunnableCall
+
+class M2T_Output_Transformer extends AbstractTransformer {
+
+
+ public def String generateOutputTextFile(Amalthea amalthea)'''
+
+
+ «var swModel=amalthea.swModel»
+
+ // generating info about Task
+ «FOR task:swModel.tasks »
+ Root task: «task.name»
+
+ «var graphEntries=task.callGraph.graphEntries»
+
+ «FOR graphEntry: graphEntries»
+
+ «IF graphEntry instanceof CallSequence»
+
+ «FOR runnableItem: graphEntry.calls»
+ «IF runnableItem instanceof TaskRunnableCall»
+ Associated Runnable : «(runnableItem as TaskRunnableCall).runnable.name »
+ «ENDIF»
+ «ENDFOR»
+ «ENDIF»
+ «ENDFOR»
+ «ENDFOR»
+ '''
+
+} \ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2t/transformation/core/configuration/M2TTransformation.java b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2t/transformation/core/configuration/M2TTransformation.java
new file mode 100644
index 0000000..6ca8d43
--- /dev/null
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.m2m.transformation.core/src/com/bosch/m2m/app4mc/m2t/transformation/core/configuration/M2TTransformation.java
@@ -0,0 +1,50 @@
+package com.bosch.m2m.app4mc.m2t.transformation.core.configuration;
+
+import java.util.Properties;
+
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.eclipse.app4mc.transformation.extensions.executiontype.IModelToTextTransformation;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import com.bosch.m2m.app4mc.m2m.transformation.core.configuration.M2MTransformation;
+import com.bosch.m2m.app4mc.m2m.transformation.core.model.loaders.AmaltheaMultiFileLoader;
+
+public class M2TTransformation implements IModelToTextTransformation{
+
+private Properties parameters;
+
+ private Logger logger=LogManager.getLogger(M2MTransformation.class);
+
+ public M2TTransformation() {
+ // TODO Auto-generated constructor stub
+ }
+ @Override
+ public ResourceSet getInputResourceSet() {
+
+ if(parameters !=null){
+
+ String folderPath = parameters.getProperty("amalthea_models_folder");
+
+ if(folderPath !=null){
+
+ ResourceSet resourceSet = new AmaltheaMultiFileLoader().loadMultipleFiles(folderPath);
+
+ return resourceSet;
+ }else{
+ logger.error("amalthea_models_folder parameter not set", new NullPointerException("amalthea_models_folder property not set"));
+ }
+
+ }else{
+ logger.error("Parameters object not set ", new NullPointerException("Parameter object is null"));
+ }
+ return null;
+ }
+
+ @Override
+ public void setProperties(Properties parameters) {
+
+ this.parameters=parameters;
+ }
+
+}
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF
index 6ec4c3b..81e2130 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.sample.simulation.model/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.app4mc.sample.simulation.model;singleton:=true
Bundle-Version: 0.1.0.qualifier
Bundle-ClassPath: .
-Bundle-Vendor: %providerName
+Bundle-Vendor: Eclipse.org
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.eclipse.app4mc.SampleSimulation,
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF
index 67be3e3..ca42183 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.3rdparty.libs/META-INF/MANIFEST.MF
@@ -3,6 +3,6 @@ Bundle-ManifestVersion: 2
Bundle-Name: 3rdparty
Bundle-SymbolicName: org.eclipse.app4mc.transformation.3rdparty.libs
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: BOSCH
+Bundle-Vendor: Eclipse.org
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
index 85e38e6..5f1d391 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: simulation
Bundle-SymbolicName: org.eclipse.app4mc.transformation.application;singleton:=true
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: BOSCH
+Bundle-Vendor: Eclipse.org
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.emf.ecore;visibility:=reexport,
org.eclipse.emf.ecore.xmi;visibility:=reexport,
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties
index b9be80f..5b6d618 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.application/input.properties
@@ -1,4 +1,5 @@
amalthea_models_folder=./input/amalthea_models
+m2t_file=./output/m2t_output.txt
simulation_models_folder=./output/simulation_models
simulation_c_code_folder=./output/simulation_models/c_code
log_file=./output/m2m_transformation.txt \ No newline at end of file
diff --git a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
index ee615b0..6bc4920 100644
--- a/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
+++ b/eclipse-tools/model-transformation/plugins/org.eclipse.app4mc.transformation.extensions/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Extensions
Bundle-SymbolicName: org.eclipse.app4mc.transformation.extensions;singleton:=true
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: BOSCH
+Bundle-Vendor: Eclipse.org
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: com.google.inject;bundle-version="3.0.0";visibility:=reexport,
org.apache.log4j;bundle-version="1.2.15",

Back to the top