aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend
diff options
context:
space:
mode:
authorLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-11 04:06:18 +0200
committerLibravatar Oszkar Semerath <semerath@mit.bme.hu>2020-05-11 04:06:18 +0200
commit4c80187e223ed4b500a68a5d83446f80565e3440 (patch)
treea5c1bc9c40dc082ba087791b96992afecc1e885d /Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend
parentSatelite case study update for Models-Attribute paper (diff)
downloadVIATRA-Generator-4c80187e223ed4b500a68a5d83446f80565e3440.tar.gz
VIATRA-Generator-4c80187e223ed4b500a68a5d83446f80565e3440.tar.zst
VIATRA-Generator-4c80187e223ed4b500a68a5d83446f80565e3440.zip
Instead of Bigdecimals doubleValue are used in check
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend')
-rw-r--r--Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend6
1 files changed, 4 insertions, 2 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend
index 5ca78e97..423bb204 100644
--- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend
+++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PConstraintTransformer.xtend
@@ -28,6 +28,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.StringTypeReference
28import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference 28import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.BoolTypeReference
29import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference 29import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntTypeReference
30import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference 30import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealTypeReference
31import java.util.Map
31 32
32class PConstraintTransformer { 33class PConstraintTransformer {
33 val extension RelationDefinitionIndexer relationDefinitionIndexer; 34 val extension RelationDefinitionIndexer relationDefinitionIndexer;
@@ -226,6 +227,7 @@ class PConstraintTransformer {
226 throw new UnsupportedOperationException('''Only check expressions are supported "«e.class.name»"!''') 227 throw new UnsupportedOperationException('''Only check expressions are supported "«e.class.name»"!''')
227 } else { 228 } else {
228 val expression = expressionExtractor.extractExpression(e.evaluator) 229 val expression = expressionExtractor.extractExpression(e.evaluator)
230 val Map<PVariable, PrimitiveTypeReference> variable2Type = e.affectedVariables.toInvertedMap[v|variableMapping.filter[it.sourcePVariable === v].head.targetLogicVariable.range as PrimitiveTypeReference]
229 if(modality.isMay) { 231 if(modality.isMay) {
230 return ''' 232 return '''
231 «FOR variable: e.affectedVariables» 233 «FOR variable: e.affectedVariables»
@@ -234,7 +236,7 @@ class PConstraintTransformer {
234 check( 236 check(
235 «FOR variable: e.affectedVariables SEPARATOR " || "»!«variable.valueSetted»«ENDFOR» 237 «FOR variable: e.affectedVariables SEPARATOR " || "»!«variable.valueSetted»«ENDFOR»
236 || 238 ||
237 («expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable])») 239 («expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable],variable2Type)»)
238 ); 240 );
239 ''' 241 '''
240 } else { // Must or Current 242 } else { // Must or Current
@@ -242,7 +244,7 @@ class PConstraintTransformer {
242 «FOR variable: e.affectedVariables» 244 «FOR variable: e.affectedVariables»
243 PrimitiveElement.valueSet(«variable.canonizeName»,true); «hasValueExpression(variableMapping,variable,variable.valueVariable)» 245 PrimitiveElement.valueSet(«variable.canonizeName»,true); «hasValueExpression(variableMapping,variable,variable.valueVariable)»
244 «ENDFOR» 246 «ENDFOR»
245 check(«expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable])»); 247 check(«expressionGenerator.translateExpression(expression,e.affectedVariables.toInvertedMap[valueVariable],variable2Type)»);
246 ''' 248 '''
247 } 249 }
248 } 250 }