diff options
author | Oszkar Semerath <semerath@mit.bme.hu> | 2020-05-11 04:19:04 +0200 |
---|---|---|
committer | Oszkar Semerath <semerath@mit.bme.hu> | 2020-05-11 04:19:04 +0200 |
commit | 194220061c9e84fe8dd7328374b18b647bf4d886 (patch) | |
tree | fffd4b51fa535af7e2179715350313953bbb5718 /Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java | |
parent | Instead of Bigdecimals doubleValue are used in check (diff) | |
parent | Fix PLEDGE Case Study File (diff) | |
download | VIATRA-Generator-194220061c9e84fe8dd7328374b18b647bf4d886.tar.gz VIATRA-Generator-194220061c9e84fe8dd7328374b18b647bf4d886.tar.zst VIATRA-Generator-194220061c9e84fe8dd7328374b18b647bf4d886.zip |
Merge branch 'master' of https://github.com/viatra/VIATRA-Generator
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java')
-rw-r--r-- | Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java | 396 |
1 files changed, 396 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java new file mode 100644 index 00000000..3015d4dd --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.pledge.run/xtend-gen/run/GenerateFromConfig.java | |||
@@ -0,0 +1,396 @@ | |||
1 | package run; | ||
2 | |||
3 | import com.google.common.base.Objects; | ||
4 | import com.google.common.collect.Iterables; | ||
5 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Command; | ||
6 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Config; | ||
7 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigEntry; | ||
8 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigSpecification; | ||
9 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ConfigurationScript; | ||
10 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.File; | ||
11 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.FileSpecification; | ||
12 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.GenerationTask; | ||
13 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.IntervallNumber; | ||
14 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.NumberSpecification; | ||
15 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ObjectTypeScope; | ||
16 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.RuntimeEntry; | ||
17 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.Scope; | ||
18 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.ScopeSpecification; | ||
19 | import hu.bme.mit.inf.dslreasoner.application.applicationConfiguration.TypeScope; | ||
20 | import hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor; | ||
21 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | ||
22 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
23 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
24 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
25 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation; | ||
26 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
27 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | ||
28 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
29 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
30 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; | ||
31 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics; | ||
32 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
33 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
34 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
35 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml; | ||
36 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation; | ||
37 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner; | ||
38 | import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration; | ||
39 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser; | ||
40 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
41 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
42 | import java.io.PrintWriter; | ||
43 | import java.math.BigDecimal; | ||
44 | import java.text.SimpleDateFormat; | ||
45 | import java.util.ArrayList; | ||
46 | import java.util.Collections; | ||
47 | import java.util.Date; | ||
48 | import java.util.HashMap; | ||
49 | import java.util.List; | ||
50 | import java.util.Map; | ||
51 | import java.util.Set; | ||
52 | import org.eclipse.core.runtime.NullProgressMonitor; | ||
53 | import org.eclipse.emf.common.util.EList; | ||
54 | import org.eclipse.emf.common.util.URI; | ||
55 | import org.eclipse.emf.ecore.EAttribute; | ||
56 | import org.eclipse.emf.ecore.EClass; | ||
57 | import org.eclipse.emf.ecore.EEnum; | ||
58 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
59 | import org.eclipse.emf.ecore.EObject; | ||
60 | import org.eclipse.emf.ecore.EPackage; | ||
61 | import org.eclipse.emf.ecore.EReference; | ||
62 | import org.eclipse.emf.ecore.EStructuralFeature; | ||
63 | import org.eclipse.emf.ecore.resource.Resource; | ||
64 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
65 | import org.eclipse.viatra.query.runtime.api.IQueryGroup; | ||
66 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
67 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
68 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
69 | import org.eclipse.xtext.xbase.lib.CollectionExtensions; | ||
70 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
71 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
72 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; | ||
73 | import org.eclipse.xtext.xbase.lib.Functions.Function0; | ||
74 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
75 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
76 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
77 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
78 | |||
79 | @SuppressWarnings("all") | ||
80 | public class GenerateFromConfig { | ||
81 | private static final int SIZE_LB = 1; | ||
82 | |||
83 | private static final int SIZE_UB = 1; | ||
84 | |||
85 | private static final int SIZE_MUL = 1; | ||
86 | |||
87 | private static final int SIZE_INC = 5; | ||
88 | |||
89 | private static int REPS = 1; | ||
90 | |||
91 | private static final int RUNTIME = 2100; | ||
92 | |||
93 | private static final String DOMAIN = "Taxation"; | ||
94 | |||
95 | private static final boolean QUERIES = true; | ||
96 | |||
97 | private static final boolean INITIAL = true; | ||
98 | |||
99 | private static final boolean INDIV_WRT = true; | ||
100 | |||
101 | private static final boolean GLOBAL_WRT = true; | ||
102 | |||
103 | private static final String q2t = new Function0<String>() { | ||
104 | @Override | ||
105 | public String apply() { | ||
106 | String _xifexpression = null; | ||
107 | if (GenerateFromConfig.QUERIES) { | ||
108 | _xifexpression = "Y"; | ||
109 | } else { | ||
110 | _xifexpression = "N"; | ||
111 | } | ||
112 | return _xifexpression; | ||
113 | } | ||
114 | }.apply(); | ||
115 | |||
116 | public static void main(final String[] args) { | ||
117 | try { | ||
118 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
119 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
120 | _extensionToFactoryMap.put("xmi", _xMIResourceFactoryImpl); | ||
121 | long _currentTimeMillis = System.currentTimeMillis(); | ||
122 | final Date date = new Date(_currentTimeMillis); | ||
123 | final SimpleDateFormat format = new SimpleDateFormat("dd-HHmm"); | ||
124 | String _format = format.format(date); | ||
125 | final String formattedDate = ((GenerateFromConfig.DOMAIN + "-") + _format); | ||
126 | StringConcatenation _builder = new StringConcatenation(); | ||
127 | _builder.append("output/"); | ||
128 | String _plus = (_builder.toString() + formattedDate); | ||
129 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
130 | _builder_1.append("/"); | ||
131 | String _plus_1 = (_plus + _builder_1); | ||
132 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_plus_1, ""); | ||
133 | workspace.initAndClear(); | ||
134 | InputOutput.<String>println("Input and output workspaces are created"); | ||
135 | final ScriptExecutor executor = new ScriptExecutor(); | ||
136 | final String path = (("config//generic" + GenerateFromConfig.DOMAIN) + ".vsconfig"); | ||
137 | ConfigurationScript config = StandaloneScriptExecutor.loadScript(path); | ||
138 | InputOutput.<String>println("Config File loaded"); | ||
139 | PrintWriter global_writer = null; | ||
140 | final String header = "domain, queries?,size,model?,timeout,measuredTime,TransformatonTime,SolverTime\n"; | ||
141 | if (GenerateFromConfig.GLOBAL_WRT) { | ||
142 | URI _workspaceURI = workspace.getWorkspaceURI(); | ||
143 | String _plus_2 = (_workspaceURI + "//_"); | ||
144 | String _plus_3 = (_plus_2 + GenerateFromConfig.DOMAIN); | ||
145 | String _plus_4 = (_plus_3 + Integer.valueOf(GenerateFromConfig.SIZE_LB)); | ||
146 | String _plus_5 = (_plus_4 + "to"); | ||
147 | String _plus_6 = (_plus_5 + Integer.valueOf(GenerateFromConfig.SIZE_UB)); | ||
148 | String _plus_7 = (_plus_6 + "x"); | ||
149 | String _plus_8 = (_plus_7 + Integer.valueOf(GenerateFromConfig.REPS)); | ||
150 | String _plus_9 = (_plus_8 + "q"); | ||
151 | String _plus_10 = (_plus_9 + GenerateFromConfig.q2t); | ||
152 | String _plus_11 = (_plus_10 + "-"); | ||
153 | String _plus_12 = (_plus_11 + formattedDate); | ||
154 | String _plus_13 = (_plus_12 + ".csv"); | ||
155 | PrintWriter _printWriter = new PrintWriter(_plus_13); | ||
156 | global_writer = _printWriter; | ||
157 | global_writer.append(header); | ||
158 | } | ||
159 | int NEXT_INC = GenerateFromConfig.SIZE_INC; | ||
160 | { | ||
161 | int size = GenerateFromConfig.SIZE_LB; | ||
162 | boolean _while = (size <= GenerateFromConfig.SIZE_UB); | ||
163 | while (_while) { | ||
164 | { | ||
165 | int _NEXT_INC = NEXT_INC; | ||
166 | NEXT_INC = (_NEXT_INC * GenerateFromConfig.SIZE_MUL); | ||
167 | PrintWriter indiv_writer = null; | ||
168 | if (GenerateFromConfig.INDIV_WRT) { | ||
169 | URI _workspaceURI_1 = workspace.getWorkspaceURI(); | ||
170 | String _plus_14 = (_workspaceURI_1 + "//__"); | ||
171 | String _plus_15 = (_plus_14 + GenerateFromConfig.DOMAIN); | ||
172 | String _plus_16 = (_plus_15 + "Sz"); | ||
173 | String _plus_17 = (_plus_16 + Integer.valueOf(size)); | ||
174 | String _plus_18 = (_plus_17 + "x"); | ||
175 | String _plus_19 = (_plus_18 + Integer.valueOf(GenerateFromConfig.REPS)); | ||
176 | String _plus_20 = (_plus_19 + "q"); | ||
177 | String _plus_21 = (_plus_20 + GenerateFromConfig.q2t); | ||
178 | String _plus_22 = (_plus_21 + "-"); | ||
179 | String _plus_23 = (_plus_22 + formattedDate); | ||
180 | String _plus_24 = (_plus_23 + | ||
181 | ".csv"); | ||
182 | PrintWriter _printWriter_1 = new PrintWriter(_plus_24); | ||
183 | indiv_writer = _printWriter_1; | ||
184 | indiv_writer.append(header); | ||
185 | } | ||
186 | InputOutput.println(); | ||
187 | InputOutput.<String>println(((("DOMAIN: " + GenerateFromConfig.DOMAIN) + ", SIZE=") + Integer.valueOf(size))); | ||
188 | for (int i = 0; (i < GenerateFromConfig.REPS); i++) { | ||
189 | { | ||
190 | InputOutput.<String>print((("<<Run number " + Integer.valueOf(i)) + ">> : ")); | ||
191 | final ArrayList<Integer> knownIntegers = new ArrayList<Integer>(); | ||
192 | CollectionExtensions.<Integer>addAll(knownIntegers, Integer.valueOf(0), Integer.valueOf(10), Integer.valueOf(20), Integer.valueOf(30), Integer.valueOf(40), Integer.valueOf(50)); | ||
193 | final ArrayList<BigDecimal> knownReals = new ArrayList<BigDecimal>(); | ||
194 | BigDecimal _bigDecimal = new BigDecimal("0.0"); | ||
195 | CollectionExtensions.<BigDecimal>addAll(knownReals, _bigDecimal); | ||
196 | final ArrayList<String> knownStrings = new ArrayList<String>(); | ||
197 | CollectionExtensions.<String>addAll(knownStrings, "r0", "r1", "r2", "r3", "r4", "r5", "r6"); | ||
198 | final String outputPath = (((((("output/" + formattedDate) + "/size") + Integer.valueOf(size)) + "/run") + Integer.valueOf(i)) + "/models/"); | ||
199 | final String debugPath = (((((("output/" + formattedDate) + "/size") + Integer.valueOf(size)) + "/run") + Integer.valueOf(i)) + "/debug/"); | ||
200 | final String logPath = (debugPath + "log.txt"); | ||
201 | final String statsPath = (debugPath + "statistics.csv"); | ||
202 | Command _get = config.getCommands().get(0); | ||
203 | final GenerationTask genTask = ((GenerationTask) _get); | ||
204 | if ((!GenerateFromConfig.QUERIES)) { | ||
205 | genTask.setPatterns(null); | ||
206 | } | ||
207 | if ((!GenerateFromConfig.INITIAL)) { | ||
208 | genTask.setPartialModel(null); | ||
209 | } | ||
210 | Scope _scope = genTask.getScope(); | ||
211 | final ScopeSpecification scopeSpec = ((ScopeSpecification) _scope); | ||
212 | TypeScope _get_1 = scopeSpec.getScopes().get(0); | ||
213 | final ObjectTypeScope objScope = ((ObjectTypeScope) _get_1); | ||
214 | NumberSpecification _number = objScope.getNumber(); | ||
215 | final IntervallNumber interval = ((IntervallNumber) _number); | ||
216 | interval.setMin(size); | ||
217 | interval.setMaxUnlimited(true); | ||
218 | Config _config = genTask.getConfig(); | ||
219 | final ConfigSpecification configScope = ((ConfigSpecification) _config); | ||
220 | ConfigEntry _get_2 = configScope.getEntries().get(0); | ||
221 | final RuntimeEntry runtimeEntry = ((RuntimeEntry) _get_2); | ||
222 | runtimeEntry.setMillisecLimit(GenerateFromConfig.RUNTIME); | ||
223 | File _debugFolder = genTask.getDebugFolder(); | ||
224 | final FileSpecification debug = ((FileSpecification) _debugFolder); | ||
225 | debug.setPath(debugPath); | ||
226 | File _tagetFolder = genTask.getTagetFolder(); | ||
227 | final FileSpecification output = ((FileSpecification) _tagetFolder); | ||
228 | output.setPath(outputPath); | ||
229 | File _targetLogFile = genTask.getTargetLogFile(); | ||
230 | final FileSpecification log = ((FileSpecification) _targetLogFile); | ||
231 | log.setPath(logPath); | ||
232 | File _targetStatisticsFile = genTask.getTargetStatisticsFile(); | ||
233 | final FileSpecification stats = ((FileSpecification) _targetStatisticsFile); | ||
234 | stats.setPath(statsPath); | ||
235 | final long startTime = System.currentTimeMillis(); | ||
236 | NullProgressMonitor _nullProgressMonitor = new NullProgressMonitor(); | ||
237 | executor.executeScript(config, _nullProgressMonitor); | ||
238 | long _currentTimeMillis_1 = System.currentTimeMillis(); | ||
239 | final long measuredTime = (_currentTimeMillis_1 - startTime); | ||
240 | InputOutput.<String>println((("<<END ->" + Double.valueOf((measuredTime / 1000.0))) + "s >>\n")); | ||
241 | final Runtime r = Runtime.getRuntime(); | ||
242 | r.gc(); | ||
243 | r.gc(); | ||
244 | r.gc(); | ||
245 | Thread.sleep(3000); | ||
246 | } | ||
247 | } | ||
248 | if (GenerateFromConfig.INDIV_WRT) { | ||
249 | indiv_writer.close(); | ||
250 | } | ||
251 | } | ||
252 | int _size = size; | ||
253 | size = (_size + NEXT_INC); | ||
254 | _while = (size <= GenerateFromConfig.SIZE_UB); | ||
255 | } | ||
256 | } | ||
257 | if (GenerateFromConfig.GLOBAL_WRT) { | ||
258 | global_writer.close(); | ||
259 | } | ||
260 | } catch (Throwable _e) { | ||
261 | throw Exceptions.sneakyThrow(_e); | ||
262 | } | ||
263 | } | ||
264 | |||
265 | public static Map<Type, Integer> getTypeMap(final Map<Class, Integer> classMap, final EcoreMetamodelDescriptor metamodel, final Ecore2Logic e2l, final Ecore2Logic_Trace trace) { | ||
266 | final HashMap<Type, Integer> typeMap = new HashMap<Type, Integer>(); | ||
267 | final Function1<EClass, String> _function = (EClass s) -> { | ||
268 | return s.getName(); | ||
269 | }; | ||
270 | final Map<String, EClass> listMap = IterableExtensions.<String, EClass>toMap(metamodel.getClasses(), _function); | ||
271 | Set<Class> _keySet = classMap.keySet(); | ||
272 | for (final Class elem : _keySet) { | ||
273 | typeMap.put( | ||
274 | e2l.TypeofEClass(trace, | ||
275 | listMap.get(elem.getSimpleName())), classMap.get(elem)); | ||
276 | } | ||
277 | return typeMap; | ||
278 | } | ||
279 | |||
280 | public static EcoreMetamodelDescriptor loadMetamodel(final EPackage pckg) { | ||
281 | final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class)); | ||
282 | final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class)); | ||
283 | final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> { | ||
284 | return it.getELiterals(); | ||
285 | }; | ||
286 | final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function))); | ||
287 | final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> { | ||
288 | return it.getEReferences(); | ||
289 | }; | ||
290 | final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1))); | ||
291 | final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> { | ||
292 | return it.getEAttributes(); | ||
293 | }; | ||
294 | final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2))); | ||
295 | return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes); | ||
296 | } | ||
297 | |||
298 | public static EList<EObject> loadPartialModel(final ReasonerWorkspace inputs, final String path) { | ||
299 | EList<EObject> _xblockexpression = null; | ||
300 | { | ||
301 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
302 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
303 | _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
304 | _xblockexpression = inputs.<EObject>readModel(EObject.class, path).eResource().getContents(); | ||
305 | } | ||
306 | return _xblockexpression; | ||
307 | } | ||
308 | |||
309 | public static ViatraQuerySetDescriptor loadQueries(final EcoreMetamodelDescriptor metamodel, final IQueryGroup i) { | ||
310 | final List<IQuerySpecification<?>> patterns = IterableExtensions.<IQuerySpecification<?>>toList(i.getSpecifications()); | ||
311 | final Function1<IQuerySpecification<?>, Boolean> _function = (IQuerySpecification<?> it) -> { | ||
312 | final Function1<PAnnotation, Boolean> _function_1 = (PAnnotation it_1) -> { | ||
313 | String _name = it_1.getName(); | ||
314 | return Boolean.valueOf(Objects.equal(_name, "Constraint")); | ||
315 | }; | ||
316 | return Boolean.valueOf(IterableExtensions.<PAnnotation>exists(it.getAllAnnotations(), _function_1)); | ||
317 | }; | ||
318 | final Set<IQuerySpecification<?>> wfPatterns = IterableExtensions.<IQuerySpecification<?>>toSet(IterableExtensions.<IQuerySpecification<?>>filter(patterns, _function)); | ||
319 | final Map<IQuerySpecification<?>, EStructuralFeature> derivedFeatures = CollectionLiterals.<IQuerySpecification<?>, EStructuralFeature>emptyMap(); | ||
320 | final ViatraQuerySetDescriptor res = new ViatraQuerySetDescriptor(patterns, wfPatterns, derivedFeatures); | ||
321 | return res; | ||
322 | } | ||
323 | |||
324 | public static void writeInterpretation(final LogicResult solution, final Logic2Ecore logic2Ecore, final ReasonerWorkspace workspace, final String id, final ViatraReasoner reasoner, final TracedOutput<LogicProblem, Ecore2Logic_Trace> mgProb) { | ||
325 | final List<? extends LogicModelInterpretation> interpretations = reasoner.getInterpretations(((ModelResult) solution)); | ||
326 | int _size = interpretations.size(); | ||
327 | ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true); | ||
328 | for (final Integer interpIndex : _doubleDotLessThan) { | ||
329 | { | ||
330 | final LogicModelInterpretation interpretation = interpretations.get((interpIndex).intValue()); | ||
331 | final EObject model = logic2Ecore.transformInterpretation(interpretation, mgProb.getTrace()); | ||
332 | StringConcatenation _builder = new StringConcatenation(); | ||
333 | _builder.append("sol-"); | ||
334 | _builder.append(id); | ||
335 | _builder.append("_"); | ||
336 | _builder.append(interpIndex); | ||
337 | _builder.append(".xmi"); | ||
338 | workspace.writeModel(model, _builder.toString()); | ||
339 | } | ||
340 | } | ||
341 | } | ||
342 | |||
343 | public static void writeRepresentation(final LogicResult solution, final ReasonerWorkspace workspace, final String id) { | ||
344 | final EList<Object> representations = solution.getRepresentation(); | ||
345 | int _size = representations.size(); | ||
346 | ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _size, true); | ||
347 | for (final Integer representationIndex : _doubleDotLessThan) { | ||
348 | { | ||
349 | final Object representation = representations.get((representationIndex).intValue()); | ||
350 | if ((representation instanceof PartialInterpretation)) { | ||
351 | final String gml = new PartialInterpretation2Gml().transform(((PartialInterpretation)representation)); | ||
352 | StringConcatenation _builder = new StringConcatenation(); | ||
353 | _builder.append("sol-"); | ||
354 | _builder.append(id); | ||
355 | _builder.append("_"); | ||
356 | _builder.append(representationIndex); | ||
357 | _builder.append(".gml"); | ||
358 | workspace.writeText(_builder.toString(), gml); | ||
359 | final PartialInterpretationVisualisation png = new GraphvizVisualiser().visualiseConcretization(((PartialInterpretation)representation)); | ||
360 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
361 | _builder_1.append("sol-"); | ||
362 | _builder_1.append(id); | ||
363 | _builder_1.append("_"); | ||
364 | _builder_1.append(representationIndex); | ||
365 | _builder_1.append(".png"); | ||
366 | png.writeToFile(workspace, _builder_1.toString()); | ||
367 | } else { | ||
368 | StringConcatenation _builder_2 = new StringConcatenation(); | ||
369 | _builder_2.append("sol-"); | ||
370 | _builder_2.append(representationIndex); | ||
371 | _builder_2.append(".txt"); | ||
372 | workspace.writeText(_builder_2.toString(), representation.toString()); | ||
373 | } | ||
374 | } | ||
375 | } | ||
376 | } | ||
377 | |||
378 | public static String writeStats(final LogicResult solution, final long time, final ViatraReasonerConfiguration config) { | ||
379 | String _xblockexpression = null; | ||
380 | { | ||
381 | final Statistics stats = solution.getStatistics(); | ||
382 | InputOutput.<String>println(" Statistics:"); | ||
383 | Object _xifexpression = null; | ||
384 | if ((config.typeScopes.maxNewElements == 2147483647)) { | ||
385 | _xifexpression = "*"; | ||
386 | } else { | ||
387 | _xifexpression = Integer.valueOf(config.typeScopes.maxNewElements); | ||
388 | } | ||
389 | String _plus = (((" #new nodes : [" + Integer.valueOf(config.typeScopes.minNewElements)) + "..") + _xifexpression); | ||
390 | String _plus_1 = (_plus + "]"); | ||
391 | InputOutput.<String>println(_plus_1); | ||
392 | _xblockexpression = InputOutput.<String>println(((" \"solve\" time: " + Double.valueOf((((double) time) / 1000))) + " s")); | ||
393 | } | ||
394 | return _xblockexpression; | ||
395 | } | ||
396 | } | ||