diff options
author | Kristóf Marussy <kris7topher@gmail.com> | 2019-05-25 15:00:10 -0400 |
---|---|---|
committer | Kristóf Marussy <kris7topher@gmail.com> | 2019-05-25 15:00:10 -0400 |
commit | 89fe6051866933495237f0c733147700275b9549 (patch) | |
tree | fee5157ef3a68af17aac1a8bdfbf7cfa50240e23 /Domains/hu.bme.mit.inf.dslreasoner.domains.cps/xtend-gen/hu/bme/mit/inf | |
parent | MDEOptimiser implementation of CPS benchmark (diff) | |
download | VIATRA-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')
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; | |||
13 | import java.util.List; | 13 | import java.util.List; |
14 | import java.util.Map; | 14 | import java.util.Map; |
15 | import java.util.concurrent.TimeUnit; | 15 | import java.util.concurrent.TimeUnit; |
16 | import java.util.function.Consumer; | 16 | import java.util.regex.Matcher; |
17 | import java.util.regex.Pattern; | ||
17 | import org.eclipse.emf.ecore.EPackage; | 18 | import org.eclipse.emf.ecore.EPackage; |
18 | import org.eclipse.emf.ecore.resource.Resource; | 19 | import org.eclipse.emf.ecore.resource.Resource; |
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 20 | import 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 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.domains.cps.generator; | 1 | package hu.bme.mit.inf.dslreasoner.domains.cps.generator; |
2 | 2 | ||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance; | ||
3 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; | 4 | import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType; |
4 | import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory; | 5 | import hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory; |
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | 6 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; |
@@ -17,6 +18,7 @@ import org.eclipse.emf.ecore.EObject; | |||
17 | import org.eclipse.emf.ecore.resource.Resource; | 18 | import org.eclipse.emf.ecore.resource.Resource; |
18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | 19 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; |
19 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | 20 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; |
21 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; | ||
20 | import org.eclipse.xtext.xbase.lib.Extension; | 22 | import org.eclipse.xtext.xbase.lib.Extension; |
21 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | 23 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; |
22 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 24 | import 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; | |||
5 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; | 5 | import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem; |
6 | import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; | 6 | import hu.bme.mit.inf.dslreasoner.domains.cps.generator.CpsGenerator; |
7 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; | 7 | import hu.bme.mit.inf.dslreasoner.domains.cps.mdeo.ExcludedRun; |
8 | import java.io.BufferedReader; | ||
9 | import java.io.BufferedWriter; | ||
10 | import java.io.FileReader; | ||
11 | import java.io.FileWriter; | ||
12 | import java.util.Collections; | ||
8 | import java.util.Map; | 13 | import java.util.Map; |
14 | import java.util.Set; | ||
9 | import org.eclipse.emf.common.util.URI; | 15 | import org.eclipse.emf.common.util.URI; |
10 | import org.eclipse.emf.ecore.EPackage; | 16 | import org.eclipse.emf.ecore.EPackage; |
11 | import org.eclipse.emf.ecore.resource.Resource; | 17 | import org.eclipse.emf.ecore.resource.Resource; |
12 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 18 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
13 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | 19 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; |
14 | import org.eclipse.xtext.xbase.lib.Exceptions; | 20 | import org.eclipse.xtext.xbase.lib.Exceptions; |
21 | import org.eclipse.xtext.xbase.lib.Pair; | ||
15 | import uk.ac.kcl.inf.mdeoptimiser.languages.MoptStandaloneSetup; | 22 | import 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 | } |