aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-25 15:00:10 -0400
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-05-25 15:00:10 -0400
commit89fe6051866933495237f0c733147700275b9549 (patch)
treefee5157ef3a68af17aac1a8bdfbf7cfa50240e23 /Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner
parentMDEOptimiser implementation of CPS benchmark (diff)
downloadVIATRA-Generator-89fe6051866933495237f0c733147700275b9549.tar.gz
VIATRA-Generator-89fe6051866933495237f0c733147700275b9549.tar.zst
VIATRA-Generator-89fe6051866933495237f0c733147700275b9549.zip
MDEOptimiser tuning for CPS
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbinbin6363 -> 7229 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbinbin11104 -> 11104 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java40
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbinbin7626 -> 7626 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbinbin5189 -> 5193 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbinbin8807 -> 9849 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java23
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbinbin4969 -> 6286 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbinbin7559 -> 7559 bytes
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/CpsMdeOptimiserMain.java41
10 files changed, 89 insertions, 15 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
index 1ba73ccf..71900272 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CbcCpsMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
index b8ff0f95..b0bc1a5c 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/.CpsToLpTranslator.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
index 00a4887b..a6ff0d0e 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/cplex/CbcCpsMain.java
@@ -13,7 +13,8 @@ import java.io.FileWriter;
13import java.util.List; 13import java.util.List;
14import java.util.Map; 14import java.util.Map;
15import java.util.concurrent.TimeUnit; 15import java.util.concurrent.TimeUnit;
16import java.util.function.Consumer; 16import java.util.regex.Matcher;
17import java.util.regex.Pattern;
17import org.eclipse.emf.ecore.EPackage; 18import org.eclipse.emf.ecore.EPackage;
18import org.eclipse.emf.ecore.resource.Resource; 19import org.eclipse.emf.ecore.resource.Resource;
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 20import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
@@ -30,6 +31,8 @@ public class CbcCpsMain {
30 31
31 private static final String SOLUTION_FILE = "solution.txt"; 32 private static final String SOLUTION_FILE = "solution.txt";
32 33
34 private static final Pattern VALUE_REGEX = Pattern.compile("Optimal - objective value\\s*([0-9]+(\\.[0-9]+)?)");
35
33 private CbcCpsMain() { 36 private CbcCpsMain() {
34 new IllegalStateException("This is a static utility class and should not be instantiated directly."); 37 new IllegalStateException("This is a static utility class and should not be instantiated directly.");
35 } 38 }
@@ -40,7 +43,7 @@ public class CbcCpsMain {
40 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); 43 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
41 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl); 44 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
42 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE); 45 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
43 final CpsGenerator generator = new CpsGenerator(1, 4, 2); 46 final CpsGenerator generator = new CpsGenerator(1, 4, 1);
44 final CyberPhysicalSystem problem = generator.generateCpsProblem(); 47 final CyberPhysicalSystem problem = generator.generateCpsProblem();
45 final CpsToLpTranslator toLp = new CpsToLpTranslator(problem, 10, true); 48 final CpsToLpTranslator toLp = new CpsToLpTranslator(problem, 10, true);
46 final CharSequence lp = toLp.getLpProblem(); 49 final CharSequence lp = toLp.getLpProblem();
@@ -69,27 +72,36 @@ public class CbcCpsMain {
69 } 72 }
70 FileReader _fileReader = new FileReader(CbcCpsMain.SOLUTION_FILE); 73 FileReader _fileReader = new FileReader(CbcCpsMain.SOLUTION_FILE);
71 final BufferedReader reader = new BufferedReader(_fileReader); 74 final BufferedReader reader = new BufferedReader(_fileReader);
75 double value = Double.NaN;
72 try { 76 try {
73 final Consumer<String> _function = (String it) -> { 77 String line = null;
74 InputOutput.<String>println(it); 78 while (((line = reader.readLine()) != null)) {
75 }; 79 {
76 reader.lines().forEach(_function); 80 InputOutput.<String>println(line);
81 final Matcher matcher = CbcCpsMain.VALUE_REGEX.matcher(line);
82 boolean _matches = matcher.matches();
83 if (_matches) {
84 value = Double.parseDouble(matcher.group(1));
85 }
86 }
87 }
77 } finally { 88 } finally {
78 reader.close(); 89 reader.close();
79 } 90 }
80 final Function1<Request, List<Integer>> _function_1 = (Request it) -> { 91 final Function1<Request, List<Integer>> _function = (Request it) -> {
81 final Function1<Requirement, Integer> _function_2 = (Requirement it_1) -> { 92 final Function1<Requirement, Integer> _function_1 = (Requirement it_1) -> {
82 return Integer.valueOf(it_1.getCount()); 93 return Integer.valueOf(it_1.getCount());
83 }; 94 };
84 return ListExtensions.<Requirement, Integer>map(it.getRequirements(), _function_2); 95 return ListExtensions.<Requirement, Integer>map(it.getRequirements(), _function_1);
85 }; 96 };
86 final Function2<Integer, Integer, Integer> _function_2 = (Integer p1, Integer p2) -> { 97 final Function2<Integer, Integer, Integer> _function_1 = (Integer p1, Integer p2) -> {
87 return Integer.valueOf(((p1).intValue() + (p2).intValue())); 98 return Integer.valueOf(((p1).intValue() + (p2).intValue()));
88 }; 99 };
89 Integer _reduce = IterableExtensions.<Integer>reduce(IterableExtensions.<Request, Integer>flatMap(problem.getRequests(), _function_1), _function_2); 100 Integer _reduce = IterableExtensions.<Integer>reduce(IterableExtensions.<Request, Integer>flatMap(problem.getRequests(), _function), _function_1);
90 int _multiply = ((_reduce).intValue() * 5); 101 final int applicationCost = ((_reduce).intValue() * 5);
91 String _plus_1 = ("Additional cost: " + Integer.valueOf(_multiply)); 102 final double cost = (applicationCost + value);
92 InputOutput.<String>println(_plus_1); 103 InputOutput.println();
104 InputOutput.<String>println(("Cost: " + Double.valueOf(cost)));
93 } catch (Throwable _e) { 105 } catch (Throwable _e) {
94 throw Exceptions.sneakyThrow(_e); 106 throw Exceptions.sneakyThrow(_e);
95 } 107 }
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
index a727fe17..94ae5907 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.CpsStateCoder.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
index 8217bf52..933852a1 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/dse/.RuleBasedCpsMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
index 306f031b..a46b8a8e 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/.CpsGenerator.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java
index e59ef004..ce0cd02d 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/generator/CpsGenerator.java
@@ -1,5 +1,6 @@
1package hu.bme.mit.inf.dslreasoner.domains.cps.generator; 1package hu.bme.mit.inf.dslreasoner.domains.cps.generator;
2 2
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
3import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; 4import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
4import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory; 5import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; 6import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
@@ -17,6 +18,7 @@ import org.eclipse.emf.ecore.EObject;
17import org.eclipse.emf.ecore.resource.Resource; 18import org.eclipse.emf.ecore.resource.Resource;
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; 19import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
19import org.eclipse.xtext.xbase.lib.CollectionLiterals; 20import org.eclipse.xtext.xbase.lib.CollectionLiterals;
21import org.eclipse.xtext.xbase.lib.ExclusiveRange;
20import org.eclipse.xtext.xbase.lib.Extension; 22import org.eclipse.xtext.xbase.lib.Extension;
21import org.eclipse.xtext.xbase.lib.ObjectExtensions; 23import org.eclipse.xtext.xbase.lib.ObjectExtensions;
22import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 24import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
@@ -46,11 +48,18 @@ public class CpsGenerator {
46 48
47 private final int demandFactor; 49 private final int demandFactor;
48 50
51 private final boolean populateAppInstances;
52
49 public CpsGenerator(final long randomSeed, final int applicationTypeCount, final int demandFactor) { 53 public CpsGenerator(final long randomSeed, final int applicationTypeCount, final int demandFactor) {
54 this(randomSeed, applicationTypeCount, demandFactor, false);
55 }
56
57 public CpsGenerator(final long randomSeed, final int applicationTypeCount, final int demandFactor, final boolean populateAppInstances) {
50 Random _random = new Random(randomSeed); 58 Random _random = new Random(randomSeed);
51 this.random = _random; 59 this.random = _random;
52 this.applicationTypeCount = applicationTypeCount; 60 this.applicationTypeCount = applicationTypeCount;
53 this.demandFactor = demandFactor; 61 this.demandFactor = demandFactor;
62 this.populateAppInstances = populateAppInstances;
54 } 63 }
55 64
56 public CyberPhysicalSystem generateCpsProblem() { 65 public CyberPhysicalSystem generateCpsProblem() {
@@ -83,6 +92,20 @@ public class CpsGenerator {
83 final Procedure1<Requirement> _function_2 = (Requirement it_2) -> { 92 final Procedure1<Requirement> _function_2 = (Requirement it_2) -> {
84 it_2.setCount(this.nextInt(CpsGenerator.MIN_REPLICAS, CpsGenerator.MAX_REPLICAS)); 93 it_2.setCount(this.nextInt(CpsGenerator.MIN_REPLICAS, CpsGenerator.MAX_REPLICAS));
85 it_2.setType(appType); 94 it_2.setType(appType);
95 if (this.populateAppInstances) {
96 int _count = it_2.getCount();
97 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _count, true);
98 for (final Integer j : _doubleDotLessThan) {
99 {
100 final ApplicationInstance app = this._cpsFactory.createApplicationInstance();
101 app.setType(appType);
102 EList<ApplicationInstance> _instances = appType.getInstances();
103 _instances.add(app);
104 EList<ApplicationInstance> _instances_1 = it_2.getInstances();
105 _instances_1.add(app);
106 }
107 }
108 }
86 }; 109 };
87 Requirement _doubleArrow = ObjectExtensions.<Requirement>operator_doubleArrow(_createRequirement, _function_2); 110 Requirement _doubleArrow = ObjectExtensions.<Requirement>operator_doubleArrow(_createRequirement, _function_2);
88 _requirements.add(_doubleArrow); 111 _requirements.add(_doubleArrow);
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
index 9d288343..c7d29222 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.CpsMdeOptimiserMain.xtendbin
Binary files differ
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin
index 46cce8d1..40ce34e3 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf/dslreasoner/domains/cps/mdeo/.ExcludedOptimisationInterpreter.xtendbin
Binary files differ
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;
5import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; 5import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
6import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; 6import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator;
7import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; 7import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun;
8import java.io.BufferedReader;
9import java.io.BufferedWriter;
10import java.io.FileReader;
11import java.io.FileWriter;
12import java.util.Collections;
8import java.util.Map; 13import java.util.Map;
14import java.util.Set;
9import org.eclipse.emf.common.util.URI; 15import org.eclipse.emf.common.util.URI;
10import org.eclipse.emf.ecore.EPackage; 16import org.eclipse.emf.ecore.EPackage;
11import org.eclipse.emf.ecore.resource.Resource; 17import org.eclipse.emf.ecore.resource.Resource;
12import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 18import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
13import org.eclipse.xtext.xbase.lib.CollectionLiterals; 19import org.eclipse.xtext.xbase.lib.CollectionLiterals;
14import org.eclipse.xtext.xbase.lib.Exceptions; 20import org.eclipse.xtext.xbase.lib.Exceptions;
21import org.eclipse.xtext.xbase.lib.Pair;
15import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup; 22import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup;
16 23
17@SuppressWarnings("all") 24@SuppressWarnings("all")
@@ -32,15 +39,47 @@ public class CpsMdeOptimiserMain {
32 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); 39 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
33 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl); 40 _extensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, _xMIResourceFactoryImpl);
34 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE); 41 EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, CpsPackage.eINSTANCE);
35 final CpsGenerator generator = new CpsGenerator(1, 4, 2); 42 final CpsGenerator generator = new CpsGenerator(1, 4, 1);
36 final CyberPhysicalSystem problem = generator.generateCpsProblem(); 43 final CyberPhysicalSystem problem = generator.generateCpsProblem();
37 Resource _eResource = problem.eResource(); 44 Resource _eResource = problem.eResource();
38 _eResource.setURI(URI.createFileURI(CpsMdeOptimiserMain.PROBLEM_PATH)); 45 _eResource.setURI(URI.createFileURI(CpsMdeOptimiserMain.PROBLEM_PATH));
39 problem.eResource().save(CollectionLiterals.<Object, Object>emptyMap()); 46 problem.eResource().save(CollectionLiterals.<Object, Object>emptyMap());
47 Pair<String, String> _mappedTo = Pair.<String, String>of("cps.ecore", CpsPackage.eNS_URI);
48 CpsMdeOptimiserMain.fixupHenshinModel("model/cps.henshin", "model/cps_fixup.henshin", Collections.<String, String>unmodifiableMap(CollectionLiterals.<String, String>newHashMap(_mappedTo)));
40 final Injector injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration(); 49 final Injector injector = new MoptStandaloneSetup().createInjectorAndDoEMFRegistration();
41 injector.<ExcludedRun>getInstance(ExcludedRun.class).run(CpsMdeOptimiserMain.PROJECT_PATH, CpsMdeOptimiserMain.MOPT_PATH); 50 injector.<ExcludedRun>getInstance(ExcludedRun.class).run(CpsMdeOptimiserMain.PROJECT_PATH, CpsMdeOptimiserMain.MOPT_PATH);
42 } catch (Throwable _e) { 51 } catch (Throwable _e) {
43 throw Exceptions.sneakyThrow(_e); 52 throw Exceptions.sneakyThrow(_e);
44 } 53 }
45 } 54 }
55
56 private static void fixupHenshinModel(final String originalPath, final String outputPath, final Map<String, String> remapMap) {
57 try {
58 FileReader _fileReader = new FileReader(originalPath);
59 final BufferedReader reader = new BufferedReader(_fileReader);
60 try {
61 FileWriter _fileWriter = new FileWriter(outputPath);
62 final BufferedWriter writer = new BufferedWriter(_fileWriter);
63 try {
64 String line = null;
65 while (((line = reader.readLine()) != null)) {
66 {
67 Set<Map.Entry<String, String>> _entrySet = remapMap.entrySet();
68 for (final Map.Entry<String, String> entry : _entrySet) {
69 line = line.replace(entry.getKey(), entry.getValue());
70 }
71 writer.write(line);
72 writer.write("\n");
73 }
74 }
75 } finally {
76 writer.close();
77 }
78 } finally {
79 reader.close();
80 }
81 } catch (Throwable _e) {
82 throw Exceptions.sneakyThrow(_e);
83 }
84 }
46} 85}