diff options
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java')
-rw-r--r-- | Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java new file mode 100644 index 00000000..e1552b2f --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/models20.diversity-calculator/xtend-gen/hu/bme/mit/inf/dslreasoner/diversitycalculator/MeasureInternalDiversity.java | |||
@@ -0,0 +1,165 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.diversitycalculator; | ||
2 | |||
3 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
5 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage; | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation; | ||
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.AbstractNodeDescriptor; | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.NeighbourhoodWithTraces; | ||
16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage; | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
20 | import java.io.File; | ||
21 | import java.util.LinkedList; | ||
22 | import java.util.List; | ||
23 | import java.util.Map; | ||
24 | import org.eclipse.emf.ecore.EObject; | ||
25 | import org.eclipse.emf.ecore.resource.Resource; | ||
26 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
27 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
28 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
29 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
30 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; | ||
31 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
32 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
33 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
34 | |||
35 | @SuppressWarnings("all") | ||
36 | public class MeasureInternalDiversity { | ||
37 | private static final InstanceModel2PartialInterpretation partialInterpretation2Logic = new InstanceModel2PartialInterpretation(); | ||
38 | |||
39 | private static final PartialInterpretation2ImmutableTypeLattice neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice(); | ||
40 | |||
41 | private static final Ecore2Logic ecore2Logic = new Ecore2Logic(); | ||
42 | |||
43 | private static Object init() { | ||
44 | Object _xblockexpression = null; | ||
45 | { | ||
46 | LogiclanguagePackage.eINSTANCE.getClass(); | ||
47 | LogicproblemPackage.eINSTANCE.getClass(); | ||
48 | PartialinterpretationPackage.eINSTANCE.getClass(); | ||
49 | Ecore2logicannotationsPackage.eINSTANCE.getClass(); | ||
50 | Viatra2LogicAnnotationsPackage.eINSTANCE.getClass(); | ||
51 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
52 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
53 | _xblockexpression = _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
54 | } | ||
55 | return _xblockexpression; | ||
56 | } | ||
57 | |||
58 | public static void main(final String[] args) { | ||
59 | MeasureInternalDiversity.init(); | ||
60 | } | ||
61 | |||
62 | public static void run(final EcoreMetamodelDescriptor metamodel, final String path, final String scenario) { | ||
63 | final int range = 20; | ||
64 | MeasureInternalDiversity.measureDiversity(metamodel, scenario, path, range); | ||
65 | } | ||
66 | |||
67 | public static void measureDiversity(final EcoreMetamodelDescriptor metamodel, final String scenario, final String path, final int depth) { | ||
68 | final File file = new File(path); | ||
69 | boolean _isDirectory = file.isDirectory(); | ||
70 | if (_isDirectory) { | ||
71 | final String[] subfiles = file.list(); | ||
72 | final Function1<String, Boolean> _function = (String it) -> { | ||
73 | return Boolean.valueOf(it.endsWith(".xmi")); | ||
74 | }; | ||
75 | final Iterable<String> xmiSubfiles = IterableExtensions.<String>filter(((Iterable<String>)Conversions.doWrapArray(subfiles)), _function); | ||
76 | boolean _isEmpty = IterableExtensions.isEmpty(xmiSubfiles); | ||
77 | boolean _not = (!_isEmpty); | ||
78 | if (_not) { | ||
79 | final Function1<String, File> _function_1 = (String it) -> { | ||
80 | return new File(((path + "/") + it)); | ||
81 | }; | ||
82 | MeasureInternalDiversity.measureDiversity(metamodel, scenario, file, IterableExtensions.<File>toList(IterableExtensions.<String, File>map(xmiSubfiles, _function_1)), path, depth); | ||
83 | } else { | ||
84 | for (final String subfile : subfiles) { | ||
85 | MeasureInternalDiversity.measureDiversity(metamodel, scenario, ((path + "/") + subfile), depth); | ||
86 | } | ||
87 | } | ||
88 | } else { | ||
89 | boolean _isFile = file.isFile(); | ||
90 | if (_isFile) { | ||
91 | } | ||
92 | } | ||
93 | } | ||
94 | |||
95 | public static void measureDiversity(final EcoreMetamodelDescriptor metamodel, final String scenario, final File parent, final List<File> files, final String path, final int depth) { | ||
96 | final FileSystemWorkspace workspace = new FileSystemWorkspace(path, ""); | ||
97 | for (final File file : files) { | ||
98 | { | ||
99 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
100 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> metamodelTransformationOutput = MeasureInternalDiversity.ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
101 | final EObject model = workspace.<EObject>readModel(EObject.class, file.getName()); | ||
102 | final PartialInterpretation partialModel = MeasureInternalDiversity.partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource(), false); | ||
103 | final LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> list = MeasureInternalDiversity.representationList(partialModel, depth); | ||
104 | try { | ||
105 | final String runIndex = MeasureInternalDiversity.runIndex(file.getName()); | ||
106 | final String modelIndex = MeasureInternalDiversity.modelIndex(file.getName()); | ||
107 | StringConcatenation _builder = new StringConcatenation(); | ||
108 | _builder.append(scenario); | ||
109 | _builder.append(";"); | ||
110 | _builder.append(runIndex); | ||
111 | _builder.append(";"); | ||
112 | _builder.append(modelIndex); | ||
113 | InputOutput.<String>print(_builder.toString()); | ||
114 | } catch (final Throwable _t) { | ||
115 | if (_t instanceof Exception) { | ||
116 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
117 | _builder_1.append(scenario); | ||
118 | _builder_1.append(";0;"); | ||
119 | String _name = file.getName(); | ||
120 | _builder_1.append(_name); | ||
121 | InputOutput.<String>print(_builder_1.toString()); | ||
122 | } else { | ||
123 | throw Exceptions.sneakyThrow(_t); | ||
124 | } | ||
125 | } | ||
126 | int _size = list.size(); | ||
127 | ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true); | ||
128 | for (final Integer i : _doubleDotLessThan) { | ||
129 | StringConcatenation _builder = new StringConcatenation(); | ||
130 | _builder.append(";"); | ||
131 | int _size_1 = list.get((i).intValue()).keySet().size(); | ||
132 | _builder.append(_size_1); | ||
133 | InputOutput.<String>print(_builder.toString()); | ||
134 | } | ||
135 | int _size_2 = list.getLast().keySet().size(); | ||
136 | double _multiply = (_size_2 * 1.0); | ||
137 | int _size_3 = partialModel.getNewElements().size(); | ||
138 | double _divide = (_multiply / _size_3); | ||
139 | String _plus = (";" + Double.valueOf(_divide)); | ||
140 | InputOutput.<String>print(_plus); | ||
141 | InputOutput.println(); | ||
142 | } | ||
143 | } | ||
144 | } | ||
145 | |||
146 | protected static String runIndex(final String name) { | ||
147 | return IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[1]; | ||
148 | } | ||
149 | |||
150 | protected static String modelIndex(final String name) { | ||
151 | return IterableExtensions.<String>head(((Iterable<String>)Conversions.doWrapArray(name.split("\\.")))).split("_")[2]; | ||
152 | } | ||
153 | |||
154 | protected static LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> representationList(final PartialInterpretation partialModel, final int depth) { | ||
155 | final LinkedList<Map<? extends AbstractNodeDescriptor, Integer>> list = new LinkedList<Map<? extends AbstractNodeDescriptor, Integer>>(); | ||
156 | ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, depth, true); | ||
157 | for (final Integer i : _doubleDotLessThan) { | ||
158 | { | ||
159 | final NeighbourhoodWithTraces<Map<? extends AbstractNodeDescriptor, Integer>, AbstractNodeDescriptor> neighbourhood = MeasureInternalDiversity.neiguboirhoodComputer.createRepresentation(partialModel, (i).intValue(), 0, 0); | ||
160 | list.add(neighbourhood.getModelRepresentation()); | ||
161 | } | ||
162 | } | ||
163 | return list; | ||
164 | } | ||
165 | } | ||