From 89fe6051866933495237f0c733147700275b9549 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 25 May 2019 15:00:10 -0400 Subject: MDEOptimiser tuning for CPS --- .../domains/cps/mdeo/CpsMdeOptimiserMain.xtend | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend index 628d5963..459c6ab7 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.xtend @@ -2,6 +2,11 @@ package hu.bme.mit.inf.dslreasoner.domains.cps.mdeo import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator +import java.io.BufferedReader +import java.io.BufferedWriter +import java.io.FileReader +import java.io.FileWriter +import java.util.Map import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.EPackage import org.eclipse.emf.ecore.resource.Resource @@ -21,11 +26,33 @@ class CpsMdeOptimiserMain { Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl) EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE) - val generator = new CpsGenerator(1, 4, 2) + val generator = new CpsGenerator(1, 4, 1) val problem = generator.generateCpsProblem problem.eResource.URI = URI.createFileURI(PROBLEM_PATH) problem.eResource.save(emptyMap) + fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", #{"cps.ecore" -> CpsPackage.eNS_URI}) val injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration(); injector.getInstance(ExcludedRun).run(PROJECT_PATH, MOPT_PATH) } + + private def static void fixupHenshinModel(String originalPath, String outputPath, Map remapMap) { + val reader = new BufferedReader(new FileReader(originalPath)) + try { + val writer = new BufferedWriter(new FileWriter(outputPath)) + try { + var String line + while ((line = reader.readLine) !== null) { + for (entry : remapMap.entrySet) { + line = line.replace(entry.key, entry.value) + } + writer.write(line) + writer.write("\n") + } + } finally { + writer.close + } + } finally { + reader.close + } + } } -- cgit v1.2.3-54-g00ecf