aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
commit6b70878a56052e1c254ba8c66485f217d22db3f8 (patch)
tree66088b97e5b6c0194f1a45f70f5f05315aba9e43 /Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
parentPre-realisticBranchCreation Commit (diff)
downloadVIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.gz
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.zst
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.zip
VAMPIRE: integrate local Vampire executeable #32
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
new file mode 100644
index 00000000..dbb3bdd1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
@@ -0,0 +1,99 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck;
8import com.google.common.base.Objects;
9import com.google.common.collect.Iterators;
10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl;
11import java.io.File;
12import java.util.ArrayList;
13import java.util.Iterator;
14import org.eclipse.emf.ecore.EReference;
15import org.eclipse.emf.ecore.impl.EcorePackageImpl;
16import org.eclipse.xtext.xbase.lib.CollectionLiterals;
17import org.eclipse.xtext.xbase.lib.Functions.Function1;
18import org.eclipse.xtext.xbase.lib.InputOutput;
19import org.eclipse.xtext.xbase.lib.IteratorExtensions;
20import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
21
22@SuppressWarnings("all")
23public class Main {
24 public static class RWInformation {
25 public String inputFolder;
26
27 public String outputFolder;
28
29 public int numRuns;
30
31 public RWInformation(final String inputFolder, final String outputFolder, final int numRuns) {
32 this.inputFolder = inputFolder;
33 this.outputFolder = outputFolder;
34 this.numRuns = numRuns;
35 }
36 }
37
38 private static Domain d = Domain.Yakindumm;
39
40 private final static String suffix = ".xmi";
41
42 private final static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/";
43
44 private final static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/";
45
46 private final static int NUM_RUNS = 1;
47
48 public static void main(final String[] args) {
49 throw new Error("Unresolved compilation problems:"
50 + "\nThe method or field ReteEngine is undefined"
51 + "\ngetClass cannot be resolved");
52 }
53
54 public static String calculateAllModels(final String inputFolder, final String outputFolder, final int numRuns, final GraphReader reader) {
55 String _xblockexpression = null;
56 {
57 new File(outputFolder).mkdir();
58 for (int i = 1; (i <= numRuns); i++) {
59 {
60 final ArrayList<EMFGraph> models = new ArrayList<EMFGraph>();
61 models.addAll(reader.readModels(((inputFolder + "run") + Integer.valueOf(i))));
62 for (final EMFGraph model : models) {
63 String _name = model.getName();
64 String _plus = (outputFolder + _name);
65 String _plus_1 = (_plus + "_run_");
66 String _plus_2 = (_plus_1 + Integer.valueOf(i));
67 String _plus_3 = (_plus_2 + ".csv");
68 Main.calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, _plus_3);
69 }
70 }
71 }
72 _xblockexpression = InputOutput.<String>println(("output results Ended for: " + outputFolder));
73 }
74 return _xblockexpression;
75 }
76
77 public static void calculateAndOutputMetrics(final EMFGraph model, final String metaModel, final String fileName) {
78 model.setMetaModel(metaModel);
79 boolean _equals = Objects.equal(Main.d, Domain.Ecore);
80 if (_equals) {
81 final Function1<EReference, Boolean> _function = (EReference it) -> {
82 return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) ||
83 it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents")));
84 };
85 Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function);
86 final Procedure1<EReference> _function_1 = (EReference it) -> {
87 model.removeReference(it);
88 };
89 IteratorExtensions.<EReference>forEach(refsToRemove, _function_1);
90 }
91 ArrayList<ArrayList<String>> outputs = model.evaluateAllMetrics();
92 int violations = ViolationCheck.calculateViolationCounts(model.getRoot(), Main.d);
93 InputOutput.<Integer>println(Integer.valueOf(violations));
94 String _plus = (Integer.valueOf(violations) + "");
95 ArrayList<String> violationsOutput = CollectionLiterals.<String>newArrayList("violations", _plus);
96 outputs.add(violationsOutput);
97 CsvFileWriter.write(outputs, fileName);
98 }
99}