diff options
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.xtend | 67 |
1 files changed, 62 insertions, 5 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 f61c7333..b48d0831 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 | |||
@@ -22,12 +22,13 @@ import java.util.List | |||
22 | import java.util.Map | 22 | import java.util.Map |
23 | import java.util.TreeSet | 23 | import java.util.TreeSet |
24 | import org.eclipse.emf.ecore.EObject | 24 | import org.eclipse.emf.ecore.EObject |
25 | import org.eclipse.xtend.lib.annotations.Accessors | ||
25 | import org.eclipse.xtext.xbase.lib.Functions.Function1 | 26 | import org.eclipse.xtext.xbase.lib.Functions.Function1 |
26 | 27 | ||
27 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 28 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
28 | 29 | ||
29 | class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ | 30 | class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ |
30 | val PartialInterpretation partialInterpretation | 31 | @Accessors val PartialInterpretation partialInterpretation |
31 | val Map<EObject, EObject> trace; | 32 | val Map<EObject, EObject> trace; |
32 | val Map<TypeDeclaration,PartialComplexTypeInterpretation> type2Interpretation | 33 | val Map<TypeDeclaration,PartialComplexTypeInterpretation> type2Interpretation |
33 | val Map<RelationDeclaration,PartialRelationInterpretation> relation2Interpretation | 34 | val Map<RelationDeclaration,PartialRelationInterpretation> relation2Interpretation |
@@ -153,14 +154,70 @@ class PartialModelAsLogicInterpretation implements LogicModelInterpretation{ | |||
153 | } | 154 | } |
154 | 155 | ||
155 | override getAllIntegersInStructure() { | 156 | override getAllIntegersInStructure() { |
156 | new TreeSet(this.integerForwardTrace.keySet) | 157 | new TreeSet(allIntegersWithInterpretation.values) |
158 | } | ||
159 | |||
160 | override getAllIntegersWithInterpretation() { | ||
161 | val builder = new HashMap | ||
162 | for (entry : integerForwardTrace.entrySet) { | ||
163 | builder.put(entry.value, entry.key) | ||
164 | } | ||
165 | for (element : partialInterpretation.newElements) { | ||
166 | if (element instanceof IntegerElement) { | ||
167 | builder.put(element, element.value) | ||
168 | } | ||
169 | } | ||
170 | builder | ||
157 | } | 171 | } |
158 | 172 | ||
159 | override getAllRealsInStructure() { | 173 | override getAllRealsInStructure() { |
160 | new TreeSet(this.realForwardTrace.keySet) | 174 | new TreeSet(allRealsWithInterpretation.values) |
175 | } | ||
176 | |||
177 | override getAllRealsWithInterpretation() { | ||
178 | val builder = new HashMap | ||
179 | for (entry : realForwardTrace.entrySet) { | ||
180 | builder.put(entry.value, entry.key) | ||
181 | } | ||
182 | for (element : partialInterpretation.newElements) { | ||
183 | if (element instanceof RealElement) { | ||
184 | builder.put(element, element.value) | ||
185 | } | ||
186 | } | ||
187 | builder | ||
161 | } | 188 | } |
162 | 189 | ||
163 | override getAllStringsInStructure() { | 190 | override getAllStringsInStructure() { |
164 | new TreeSet(this.stringForwardTrace.keySet) | 191 | new TreeSet(allStringsWithInterpretation.values) |
192 | } | ||
193 | |||
194 | override getAllStringsWithInterpretation() { | ||
195 | val builder = new HashMap | ||
196 | for (entry : stringForwardTrace.entrySet) { | ||
197 | builder.put(entry.value, entry.key) | ||
198 | } | ||
199 | for (element : partialInterpretation.newElements) { | ||
200 | if (element instanceof StringElement) { | ||
201 | builder.put(element, element.value) | ||
202 | } | ||
203 | } | ||
204 | builder | ||
205 | } | ||
206 | |||
207 | override getAllBooleansInStructure() { | ||
208 | new TreeSet(allBooleansWithInterpretation.values) | ||
209 | } | ||
210 | |||
211 | override getAllBooleansWithInterpretation() { | ||
212 | val builder = new HashMap | ||
213 | for (entry : booleanForwardTrace.entrySet) { | ||
214 | builder.put(entry.value, entry.key) | ||
215 | } | ||
216 | for (element : partialInterpretation.newElements) { | ||
217 | if (element instanceof BooleanElement) { | ||
218 | builder.put(element, element.value) | ||
219 | } | ||
220 | } | ||
221 | builder | ||
165 | } | 222 | } |
166 | } \ No newline at end of file | 223 | } |