diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend')
-rw-r--r-- | Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend index 8d936a88..010e8f87 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend | |||
@@ -12,17 +12,20 @@ import org.eclipse.emf.ecore.EcorePackage | |||
12 | import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine | 12 | import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine |
13 | import org.eclipse.emf.ecore.impl.EcorePackageImpl | 13 | import org.eclipse.emf.ecore.impl.EcorePackageImpl |
14 | import org.eclipse.emf.ecore.EReference | 14 | import org.eclipse.emf.ecore.EReference |
15 | import github.impl.GithubPackageImpl | ||
15 | 16 | ||
16 | //import yakindumm2.impl.Yakindumm2PackageImpl | 17 | //import yakindumm2.impl.Yakindumm2PackageImpl |
17 | 18 | ||
18 | class Main { | 19 | class Main { |
19 | var static Domain d = Domain.Ecore; | 20 | var static Domain d = Domain.Github; |
20 | val static String suffix = '.xmi' | 21 | val static String suffix = '.xmi' |
21 | val static String OUTPUT_FOLDER = "Inputs/random/ecore/"; | 22 | val static String OUTPUT_FOLDER = "Inputs/Github/Alloy/"; |
22 | val static String INPUT_FOLDER = "outputs/random/ecore/"; | 23 | val static String INPUT_FOLDER = "outputs/Github/Alloy/"; |
23 | val static int NUM_RUNS = 1; | 24 | val static int NUM_RUNS = 1; |
24 | var static validFiles = 0; | 25 | var static validFiles = 0; |
25 | var static totalFiles = 0; | 26 | var static totalFiles = 0; |
27 | var static ViolationCheck checker; | ||
28 | var static EPackage metamodel; | ||
26 | 29 | ||
27 | static class RWInformation{ | 30 | static class RWInformation{ |
28 | public var String inputFolder; | 31 | public var String inputFolder; |
@@ -38,7 +41,6 @@ class Main { | |||
38 | 41 | ||
39 | def static void main(String[] args){ | 42 | def static void main(String[] args){ |
40 | //init model | 43 | //init model |
41 | var EPackage metamodel; | ||
42 | //init viatra engine for the violation checker | 44 | //init viatra engine for the violation checker |
43 | ReteEngine.getClass(); | 45 | ReteEngine.getClass(); |
44 | 46 | ||
@@ -49,10 +51,10 @@ class Main { | |||
49 | EcorePackage.eINSTANCE.eClass; | 51 | EcorePackage.eINSTANCE.eClass; |
50 | metamodel = EcorePackageImpl.eINSTANCE; | 52 | metamodel = EcorePackageImpl.eINSTANCE; |
51 | }else if (d == Domain.Github){ | 53 | }else if (d == Domain.Github){ |
52 | //TODO: Initialize Github Package | 54 | metamodel = GithubPackageImpl.eINSTANCE; |
53 | } | 55 | } |
54 | 56 | ||
55 | 57 | checker = new ViolationCheck(d); | |
56 | println("Start Reading Models..."); | 58 | println("Start Reading Models..."); |
57 | var reader = new GraphReader(metamodel, suffix); | 59 | var reader = new GraphReader(metamodel, suffix); |
58 | 60 | ||
@@ -68,7 +70,7 @@ class Main { | |||
68 | val models = new ArrayList<EMFGraph>(); | 70 | val models = new ArrayList<EMFGraph>(); |
69 | models.addAll(reader.readModels(inputFolder + "run" + i)); | 71 | models.addAll(reader.readModels(inputFolder + "run" + i)); |
70 | for(model : models){ | 72 | for(model : models){ |
71 | calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, outputFolder+model.name+"_run_"+i+".csv"); | 73 | calculateAndOutputMetrics(model, metamodel.name, outputFolder+model.name+"_run_"+i+".csv"); |
72 | } | 74 | } |
73 | } | 75 | } |
74 | println("output results Ended for: " + outputFolder); | 76 | println("output results Ended for: " + outputFolder); |
@@ -90,7 +92,10 @@ class Main { | |||
90 | } | 92 | } |
91 | 93 | ||
92 | var outputs = model.evaluateAllMetrics(); | 94 | var outputs = model.evaluateAllMetrics(); |
93 | var violations = ViolationCheck.calculateViolationCounts(model.root, d); | 95 | var violations = checker.calculateViolationCounts(model.root); |
96 | var map = checker.violationMaps(model.root); | ||
97 | |||
98 | println(violations); | ||
94 | if (violations == 0) { | 99 | if (violations == 0) { |
95 | validFiles += 1; | 100 | validFiles += 1; |
96 | } | 101 | } |