aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-06-13 13:27:33 +0200
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-06-13 13:27:33 +0200
commit354f378b6b8ed4d50fc4f378fe48217f9881505c (patch)
tree35676794eb6870ca67b006b452d58b43cf3abb44 /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend
parenttype multiplicity is refined to 0 (diff)
downloadVIATRA-Generator-354f378b6b8ed4d50fc4f378fe48217f9881505c.tar.gz
VIATRA-Generator-354f378b6b8ed4d50fc4f378fe48217f9881505c.tar.zst
VIATRA-Generator-354f378b6b8ed4d50fc4f378fe48217f9881505c.zip
Updated partial model representation handling
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend18
1 files changed, 9 insertions, 9 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend
index 7751c8eb..eef53973 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/PartialModelAsLogicInterpretation.xtend
@@ -10,9 +10,9 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDeclaration
10import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink 10import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BooleanElement 11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BooleanElement
12import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.IntegerElement 12import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.IntegerElement
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialComplexTypeInterpretation
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation 14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation 15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialTypeInterpratation
16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement 16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PrimitiveElement
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.RealElement 17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.RealElement
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.StringElement 18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.StringElement
@@ -20,16 +20,16 @@ import java.math.BigDecimal
20import java.util.HashMap 20import java.util.HashMap
21import java.util.List 21import java.util.List
22import java.util.Map 22import java.util.Map
23import java.util.TreeSet
23import org.eclipse.emf.ecore.EObject 24import org.eclipse.emf.ecore.EObject
24import org.eclipse.xtext.xbase.lib.Functions.Function1 25import org.eclipse.xtext.xbase.lib.Functions.Function1
25 26
26import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 27import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
27import java.util.TreeSet
28 28
29class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ 29class PartialModelAsLogicInterpretation implements LogicModelInterpretation{
30 val PartialInterpretation partialInterpretation 30 val PartialInterpretation partialInterpretation
31 val Map<EObject, EObject> trace; 31 val Map<EObject, EObject> trace;
32 val Map<TypeDeclaration,PartialTypeInterpratation> type2Interpretation 32 val Map<TypeDeclaration,PartialComplexTypeInterpretation> type2Interpretation
33 val Map<RelationDeclaration,PartialRelationInterpretation> relation2Interpretation 33 val Map<RelationDeclaration,PartialRelationInterpretation> relation2Interpretation
34 34
35 val Map<DefinedElement,DefinedElement> elementBackwardTrace 35 val Map<DefinedElement,DefinedElement> elementBackwardTrace
@@ -41,18 +41,18 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{
41 new(PartialInterpretation partialInterpretation, Map<EObject, EObject> forwardMap) { 41 new(PartialInterpretation partialInterpretation, Map<EObject, EObject> forwardMap) {
42 this.partialInterpretation = partialInterpretation 42 this.partialInterpretation = partialInterpretation
43 this.trace = forwardMap 43 this.trace = forwardMap
44 this.type2Interpretation = initTypes(partialInterpretation.partialtypeinterpratation) 44 this.type2Interpretation = initComplexTypes(partialInterpretation.partialtypeinterpratation.filter(PartialComplexTypeInterpretation))
45 this.relation2Interpretation = initRelations(partialInterpretation.partialrelationinterpretation) 45 this.relation2Interpretation = initRelations(partialInterpretation.partialrelationinterpretation)
46 46
47 this.elementBackwardTrace = initElementBackwardTrace(trace) 47 this.elementBackwardTrace = initElementBackwardTrace(trace)
48 this.booleanForwardTrace = initialisePrimitiveElementTrace( 48 this.booleanForwardTrace = initialisePrimitiveElementTrace(
49 null,null,[null],partialInterpretation.booleanelements,[it.value]) 49 null,null,[null],partialInterpretation.newElements.filter(BooleanElement),[it.value])
50 integerForwardTrace = initialisePrimitiveElementTrace( 50 integerForwardTrace = initialisePrimitiveElementTrace(
51 0,[it+1],[it],partialInterpretation.integerelements,[it.value]) 51 0,[it+1],[it],partialInterpretation.newElements.filter(IntegerElement),[it.value])
52 realForwardTrace = initialisePrimitiveElementTrace( 52 realForwardTrace = initialisePrimitiveElementTrace(
53 BigDecimal::ZERO,[it.add(BigDecimal.ONE)],[it],partialInterpretation.realelements,[it.value]) 53 BigDecimal::ZERO,[it.add(BigDecimal.ONE)],[it],partialInterpretation.newElements.filter(RealElement),[it.value])
54 stringForwardTrace = initialisePrimitiveElementTrace( 54 stringForwardTrace = initialisePrimitiveElementTrace(
55 0,[it+1],['''String«it»'''],partialInterpretation.stringelement,[it.value]) 55 0,[it+1],['''String«it»'''],partialInterpretation.newElements.filter(StringElement),[it.value])
56 } 56 }
57 57
58 private def <Seed,Type,ElementType extends PrimitiveElement> Map<Type,ElementType> initialisePrimitiveElementTrace( 58 private def <Seed,Type,ElementType extends PrimitiveElement> Map<Type,ElementType> initialisePrimitiveElementTrace(
@@ -83,7 +83,7 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{
83 return forwardMap 83 return forwardMap
84 } 84 }
85 85
86 def initTypes(List<PartialTypeInterpratation> types) { 86 def initComplexTypes(Iterable<PartialComplexTypeInterpretation> types) {
87 types.toMap[it.interpretationOf] 87 types.toMap[it.interpretationOf]
88 } 88 }
89 def initRelations(List<PartialRelationInterpretation> relations) { 89 def initRelations(List<PartialRelationInterpretation> relations) {