diff options
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.xtend | 15 |
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 | |||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition | 3 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 4 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
5 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery | 5 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.TransfomedViatraQuery |
6 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality | ||
6 | import java.util.Map | 7 | import java.util.Map |
7 | import org.eclipse.emf.ecore.EAttribute | 8 | import org.eclipse.emf.ecore.EAttribute |
9 | import org.eclipse.emf.ecore.EEnumLiteral | ||
8 | import org.eclipse.emf.ecore.EReference | 10 | import org.eclipse.emf.ecore.EReference |
9 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey | 11 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey |
12 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey | ||
10 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey | 13 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey |
11 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint | 14 | import org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint |
12 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable | 15 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable |
@@ -21,8 +24,6 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeCo | |||
21 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery | 24 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery |
22 | 25 | ||
23 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 26 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
24 | import org.eclipse.viatra.query.runtime.emf.types.EDataTypeInSlotsKey | ||
25 | import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.Modality | ||
26 | 27 | ||
27 | class RelationDefinitionIndexer { | 28 | class 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 |