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.xtend23
1 files changed, 18 insertions, 5 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 794e706b..39b6fbc0 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
@@ -91,7 +91,8 @@ class RelationDefinitionIndexer {
91 }«ENDFOR» 91 }«ENDFOR»
92 ''' 92 '''
93 } catch(UnsupportedOperationException e) { 93 } catch(UnsupportedOperationException e) {
94 throw new UnsupportedOperationException('''Can not transform pattern "«p.fullyQualifiedName»"!''',e) 94 e.printStackTrace
95 throw new UnsupportedOperationException('''Can not transform pattern "«p.fullyQualifiedName»"! Reason: «e.message»''',e)
95 } 96 }
96 } 97 }
97 private def transformPatternWithTwoParameters(RelationDefinition relation, PQuery p, Modality modality) { 98 private def transformPatternWithTwoParameters(RelationDefinition relation, PQuery p, Modality modality) {
@@ -137,7 +138,7 @@ class RelationDefinitionIndexer {
137 modality.toMustMay) 138 modality.toMustMay)
138 } else throw new UnsupportedOperationException('''unknown key: «key.class»''') 139 } else throw new UnsupportedOperationException('''unknown key: «key.class»''')
139 } else { 140 } else {
140 throw new UnsupportedOperationException() 141 throw new UnsupportedOperationException('''Unsupported touple size: «touple.size»''')
141 } 142 }
142 } 143 }
143 144
@@ -196,10 +197,22 @@ class RelationDefinitionIndexer {
196 var String additionalDefinition; 197 var String additionalDefinition;
197 if(target instanceof EEnumLiteral) { 198 if(target instanceof EEnumLiteral) {
198 targetString = '''const_«target.name»_«target.EEnum.name»''' 199 targetString = '''const_«target.name»_«target.EEnum.name»'''
199 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); LogicProblem.elements(problem,«targetString»);''' 200 additionalDefinition = '''DefinedElement.name(«targetString»,"«target.name» «target.EEnum.name»"); //LogicProblem.elements(problem,«targetString»);'''
200 } else if(target instanceof Integer) { 201 } else if(target instanceof Integer) {
201 targetString = target.toString 202 targetString = '''const_«target»_Integer'''
202 additionalDefinition = '''''' 203 additionalDefinition = '''IntegerElement.value(«targetString»,«target»);'''
204 } else if(target instanceof Boolean) {
205 targetString = '''const_«target»_Boolean'''
206 additionalDefinition = '''BooleanElement.value(«targetString»,«target»);'''
207 } else if(target instanceof String) {
208 targetString = '''const_«target»_String'''
209 additionalDefinition = '''StringElement.value(«targetString»,"«target»");'''
210 } else if(target instanceof Double) {
211 targetString = '''const_«target»_Number'''
212 additionalDefinition = '''RealElement.value(«targetString»,"«target»");'''
213 } else if(target instanceof Float) {
214 targetString = '''const_«target»_Number'''
215 additionalDefinition = '''RealElement.value(«targetString»,"«target»");'''
203 } else { 216 } else {
204 throw new UnsupportedOperationException('''Unknown constant type: «target.class»''') 217 throw new UnsupportedOperationException('''Unknown constant type: «target.class»''')
205 } 218 }