aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend')
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend84
1 files changed, 36 insertions, 48 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend
index 863a91c8..91c46dd6 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend
+++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/SimpleRun.xtend
@@ -1,41 +1,39 @@
1package hu.bme.mit.inf.dslreasoner.run 1package hu.bme.mit.inf.dslreasoner.run
2 2
3import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
5import hu.bme.mit.inf.dslreasoner.domains.transima.fam.Model
6import hu.bme.mit.inf.dslreasoner.domains.transima.fam.Type
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
13import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
14import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
15import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
16import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
17import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
21import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
22import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
23import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser
3import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 24import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
4import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage 25import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
26import java.util.LinkedHashMap
27import java.util.LinkedList
5import java.util.List 28import java.util.List
29import org.eclipse.emf.ecore.EAttribute
6import org.eclipse.emf.ecore.EClass 30import org.eclipse.emf.ecore.EClass
7import org.eclipse.emf.ecore.EEnumLiteral
8import org.eclipse.emf.ecore.EReference
9import org.eclipse.emf.ecore.EEnum 31import org.eclipse.emf.ecore.EEnum
10import org.eclipse.emf.ecore.EAttribute 32import org.eclipse.emf.ecore.EEnumLiteral
11import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
12import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
13import org.eclipse.emf.ecore.EObject 33import org.eclipse.emf.ecore.EObject
14import java.util.LinkedHashMap 34import org.eclipse.emf.ecore.EReference
15import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
16import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
17import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
19import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
20import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
21import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
22import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
23import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy
24import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
25import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
26import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
27import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
28import org.eclipse.emf.ecore.resource.Resource 35import org.eclipse.emf.ecore.resource.Resource
29import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 36import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
30import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
31import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
32import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
33import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
34import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
35import java.util.LinkedList
36import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation
37import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder
38import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
39 37
40class SimpleRun { 38class SimpleRun {
41 39
@@ -59,7 +57,7 @@ class SimpleRun {
59 57
60 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) 58 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
61 val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) 59 val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
62 val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) 60 val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelExtensionProblem,new Viatra2LogicConfiguration)
63 61
64 val logicProblem = validModelExtensionProblem.output 62 val logicProblem = validModelExtensionProblem.output
65 63
@@ -71,11 +69,10 @@ class SimpleRun {
71 val viatraConfig = new ViatraReasonerConfiguration => [ 69 val viatraConfig = new ViatraReasonerConfiguration => [
72 it.typeScopes.maxNewElements = 40 70 it.typeScopes.maxNewElements = 40
73 it.typeScopes.minNewElements = 40 71 it.typeScopes.minNewElements = 40
74 it.solutionScope.numberOfRequiredSolution = 1 72 it.solutionScope.numberOfRequiredSolutions = 1
75 it.existingQueries = queries.patterns.map[it.internalQueryRepresentation] 73 it.documentationLevel = DocumentationLevel.NONE
76 it.debugCongiguration.logging = false 74 it.debugConfiguration.partalInterpretationVisualisationFrequency = 1
77 it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 75 it.debugConfiguration.partialInterpretatioVisualiser = new GraphvizVisualiser
78 it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation
79 ] 76 ]
80 solution = reasoner.solve(logicProblem,viatraConfig,workspace) 77 solution = reasoner.solve(logicProblem,viatraConfig,workspace)
81 /*/ 78 /*/
@@ -95,11 +92,6 @@ class SimpleRun {
95 val interpretations = reasoner.getInterpretations(solution as ModelResult) 92 val interpretations = reasoner.getInterpretations(solution as ModelResult)
96 val models = new LinkedList 93 val models = new LinkedList
97 for(interpretation : interpretations) { 94 for(interpretation : interpretations) {
98 val extension b = new LogicStructureBuilder
99 val extension a = new LogicProblemBuilder
100
101
102
103 val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) 95 val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace)
104 models+=instanceModel 96 models+=instanceModel
105 } 97 }
@@ -108,7 +100,7 @@ class SimpleRun {
108 } 100 }
109 101
110 def private static loadMetamodel() { 102 def private static loadMetamodel() {
111 val pckg = FunctionalArchitecturePackage.eINSTANCE 103 val pckg = FunctionalarchitecturePackage.eINSTANCE
112 val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList 104 val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
113 val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList 105 val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList
114 val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList 106 val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList
@@ -118,12 +110,12 @@ class SimpleRun {
118 } 110 }
119 111
120 def private static loadQueries(EcoreMetamodelDescriptor metamodel) { 112 def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
121 val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance 113 val i = FamPatterns.instance
122 val patterns = i.specifications.toList 114 val patterns = i.specifications.toList
123 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet 115 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
124 val derivedFeatures = new LinkedHashMap 116 val derivedFeatures = new LinkedHashMap
125 derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) 117 derivedFeatures.put(Type.instance,metamodel.attributes.filter[it.name == "type"].head)
126 derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) 118 derivedFeatures.put(Model.instance,metamodel.references.filter[it.name == "model"].head)
127 val res = new ViatraQuerySetDescriptor( 119 val res = new ViatraQuerySetDescriptor(
128 patterns, 120 patterns,
129 wfPatterns, 121 wfPatterns,
@@ -160,8 +152,4 @@ class SimpleRun {
160 println("Solution saved and visualised") 152 println("Solution saved and visualised")
161 } 153 }
162 } 154 }
163
164 def static visualizeSolution() {
165
166 }
167} \ No newline at end of file 155} \ No newline at end of file