From 86dbfdb49e051121022d06ddd7249485f13f567a Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Mon, 5 Mar 2018 17:59:26 -0500 Subject: Fixed nasty bug with creating root element --- .../logic2viatra/rules/RefinementRuleProvider.xtend | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/RefinementRuleProvider.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/RefinementRuleProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/RefinementRuleProvider.xtend index 8b0f8f85..4b5f2946 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/RefinementRuleProvider.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/RefinementRuleProvider.xtend @@ -58,6 +58,7 @@ class RefinementRuleProvider { { val name = '''addObject_«type.name.canonizeName»« IF containmentRelation!=null»_by_«containmentRelation.name.canonizeName»«ENDIF»''' + //println("Rule created: " + name + "> " + lhs.fullyQualifiedName) val ruleBuilder = factory.createRule .name(name) .precondition(lhs) @@ -129,25 +130,30 @@ class RefinementRuleProvider { } } else { ruleBuilder.action[match | - //println(name) + println(name) + val startTime = System.nanoTime //val problem = match.get(0) as LogicProblem val interpretation = match.get(1) as PartialInterpretation val typeInterpretation = match.get(2) as PartialTypeInterpratation + println("->"+typeInterpretation.interpretationOf.name) - val newElement = createDefinedElement //=> [it.name = null] + val newElement = createDefinedElement if(nameNewElement) { newElement.name = '''new «interpretation.newElements.size»''' } + // Existence interpretation.newElements+=newElement interpretation.maxNewElements=interpretation.maxNewElements-1 if(interpretation.minNewElements > 0) { interpretation.minNewElements=interpretation.minNewElements-1 } + // Types typeInterpretation.elements += newElement typeInterpretation.supertypeInterpretation.forEach[it.elements += newElement] + statistics.addExecutionTime(System.nanoTime-startTime) ] } -- cgit v1.2.3-70-g09d2