diff options
author | Zakir Meer | 2017-11-02 11:53:33 +0000 |
---|---|---|
committer | Zakir Meer | 2017-11-02 11:53:33 +0000 |
commit | 3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31 (patch) | |
tree | b67e5de33f541c0b53c3cf5a5572b150f115b205 | |
parent | bf4d33fdfc82260d504ef9a5628ae4f04d7015e9 (diff) | |
download | org.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.tar.gz org.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.tar.xz org.eclipse.app4mc.tools-3de5be2bfb4dd70c3a4e7dafe28049ae7dbbbe31.zip |
added code of M2T transformation
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", |