aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend15
1 files changed, 9 insertions, 6 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
index 1e86f826..794e706b 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend
@@ -3,10 +3,13 @@ package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns
3import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition 3import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition
4import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem 4import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
5import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery 5import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery
6import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality
6import java.util.Map 7import java.util.Map
7import org.eclipse.emf.ecore.EAttribute 8import org.eclipse.emf.ecore.EAttribute
9import org.eclipse.emf.ecore.EEnumLiteral
8import org.eclipse.emf.ecore.EReference 10import org.eclipse.emf.ecore.EReference
9import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey 11import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey
12import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey
10import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey 13import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey
11import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint 14import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint
12import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable 15import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable
@@ -21,8 +24,6 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeCo
21import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery 24import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery
22 25
23import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 26import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
24import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey
25import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality
26 27
27class RelationDefinitionIndexer { 28class RelationDefinitionIndexer {
28 val PatternGenerator base; 29 val PatternGenerator base;
@@ -193,13 +194,15 @@ class RelationDefinitionIndexer {
193 194
194 var String targetString; 195 var String targetString;
195 var String additionalDefinition; 196 var String additionalDefinition;
196 if(target instanceof Enum<?>) { 197 if(target instanceof EEnumLiteral) {
197 targetString = '''const_«target.name»_«target.declaringClass.simpleName»''' 198 targetString = '''const_«target.name»_«target.EEnum.name»'''
198 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.declaringClass.simpleName»"); LogicProblem.elements(problem,«targetString»);''' 199 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); LogicProblem.elements(problem,«targetString»);'''
199 } else if(target instanceof Integer) { 200 } else if(target instanceof Integer) {
200 targetString = target.toString 201 targetString = target.toString
201 additionalDefinition = '''''' 202 additionalDefinition = ''''''
202 } else throw new UnsupportedOperationException('''Unknown constant type: «target.class»''') 203 } else {
204 throw new UnsupportedOperationException('''Unknown constant type: «target.class»''')
205 }
203 206
204 val source = c.variablesTuple 207 val source = c.variablesTuple
205 var String sourceName 208 var String sourceName