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.java | 41 +++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java') diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java index 288505a1..7a2a7e99 100644 --- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java @@ -5,13 +5,20 @@ import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage; import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; +import java.util.Collections; import java.util.Map; +import java.util.Set; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Exceptions; +import org.eclipse.xtext.xbase.lib.Pair; import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup; @SuppressWarnings("all") @@ -32,15 +39,47 @@ public class CpsMdeOptimiserMain { XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl); EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE); - final CpsGenerator generator = new CpsGenerator(1, 4, 2); + final CpsGenerator generator = new CpsGenerator(1, 4, 1); final CyberPhysicalSystem problem = generator.generateCpsProblem(); Resource _eResource = problem.eResource(); _eResource.setURI(URI.createFileURI(CpsMdeOptimiserMain.PROBLEM_PATH)); problem.eResource().save(CollectionLiterals.emptyMap()); + Pair _mappedTo = Pair.of("cps.ecore", CpsPackage.eNS_URI); + CpsMdeOptimiserMain.fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", Collections.unmodifiableMap(CollectionLiterals.newHashMap(_mappedTo))); final Injector injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration(); injector.getInstance(ExcludedRun.class).run(CpsMdeOptimiserMain.PROJECT_PATH, CpsMdeOptimiserMain.MOPT_PATH); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } + + private static void fixupHenshinModel(final String originalPath, final String outputPath, final Map remapMap) { + try { + FileReader _fileReader = new FileReader(originalPath); + final BufferedReader reader = new BufferedReader(_fileReader); + try { + FileWriter _fileWriter = new FileWriter(outputPath); + final BufferedWriter writer = new BufferedWriter(_fileWriter); + try { + String line = null; + while (((line = reader.readLine()) != null)) { + { + Set> _entrySet = remapMap.entrySet(); + for (final Map.Entry entry : _entrySet) { + line = line.replace(entry.getKey(), entry.getValue()); + } + writer.write(line); + writer.write("\n"); + } + } + } finally { + writer.close(); + } + } finally { + reader.close(); + } + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } } -- cgit v1.2.3-54-g00ecf