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 | 23 |
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 | } |