| /** | |
| * ******************************************************************************* | |
| * Copyright (c) 2016 Robert Bosch GmbH and others. | |
| * All rights reserved. This program and the accompanying materials | |
| * are made available under the terms of the Eclipse Public License 2.0 | |
| * which accompanies this distribution, and is available at | |
| * https://www.eclipse.org/legal/epl-2.0/ | |
| * | |
| * Contributors: | |
| * Robert Bosch GmbH - initial API and implementation | |
| * | |
| * ******************************************************************************* | |
| */ | |
| // ************************************************************************************** | |
| // name : Sample Workflow | |
| // script-type : JavaScript | |
| // description : This workflow is used to : | |
| // - invoke "AmaltheaReader" Component to read AMALTHEA model files | |
| // - invoke "CreateLabelsComponent" to add new labels | |
| // - invoke "LabelsExtractorComponent" to extract all label names | |
| // - invoke "AmaltheaWriter" Component to write the model in file | |
| // *************************************************************************************** | |
| //basic setup | |
| loadModule('/System/Resources') | |
| loadModule("/System/JVM"); | |
| loadModule('/APP4MC/Workflow') | |
| //Importing needed packages | |
| // Below two packages are mandatory as they contain class's from the framework | |
| importPackage(org.eclipse.app4mc.amalthea.workflow.component) | |
| importPackage(org.eclipse.app4mc.amalthea.workflow.core) | |
| // Below package is specific to the plugin (where user specific component class's are defined) | |
| importPackage(org.eclipse.app4mc.example.tool.workflow.components) | |
| //Configure logging | |
| addLoggerToConsole("org.eclipse.app4mc.amalthea.workflow") | |
| //configure logging to the plugin which contains script class's | |
| addLoggerToConsole("org.eclipse.app4mc.example.tool.workflow.components") | |
| print("Starting Workflow ...") | |
| //general setup | |
| const BASE = "platform:/resource" | |
| const PROJECT = BASE + "/app4mc.example.tool.workflow" | |
| const MODEL_LOCATION1 = PROJECT + "/model/AMALTHEA_Democar.amxmi" | |
| const MODEL_LOCATION2 = PROJECT + "/model/AMALTHEA_Components.amxmi" | |
| var ctx = new DefaultContext() | |
| /*- | |
| * ******************************************************************************* | |
| * Read all AMALTHEA model's | |
| * ******************************************************************************** | |
| */ | |
| var reader = new ModelReader() | |
| reader.addFileName(MODEL_LOCATION1) | |
| reader.addFileName(MODEL_LOCATION2) | |
| reader.run(ctx) | |
| /*- | |
| * ******************************************************************************* | |
| * Create and add Labels in the AMALTHEA model | |
| * ******************************************************************************** | |
| */ | |
| var labelsCreationComponent = createInstance("workspace://app4mc.example.tool.workflow/src/org/eclipse/app4mc/example/tool/workflow/components/CreateLabelsComponent.java") | |
| labelsCreationComponent.getLabelNames().add("Test_Label_1"); | |
| labelsCreationComponent.getLabelNames().add("Test_Label_2"); | |
| labelsCreationComponent.getLabelNames().add("Test_Label_3"); | |
| labelsCreationComponent.run(ctx) | |
| /*- | |
| * ******************************************************************************* | |
| * Print all Label names available in the AMALTHEA model | |
| * ******************************************************************************** | |
| */ | |
| var labelsExtractorComponent = createInstance("workspace://app4mc.example.tool.workflow/src/org/eclipse/app4mc/example/tool/workflow/components/LabelsExtractorComponent.java") | |
| labelsExtractorComponent.run(ctx) | |
| /*- | |
| * ******************************************************************************* | |
| * Write AMALTHEA model into a file | |
| * ******************************************************************************** | |
| */ | |
| var writer = new ModelWriter() | |
| writer.setFileName("createtasks") | |
| writer.setSingleFile(true) //with this switch it is possible to generate either a single or multiple model files | |
| writer.setOutputDir(PROJECT + "/workflow-output/") | |
| writer.run(ctx) | |
| print("Finished Workflow") | |
| ctx.clear() | |
| endWorkflow() |