From a2ba6b5addbc82a635af4f90195581c08f9913c0 Mon Sep 17 00:00:00 2001 From: Oszkar Semerath Date: Thu, 7 May 2020 19:22:16 +0200 Subject: multiple object additions fixes --- .../logic2viatra/patterns/RelationDefinitionIndexer.xtend | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/RelationDefinitionIndexer.xtend') 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 bd6e3e6e..37950834 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 @@ -10,6 +10,7 @@ import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.Binary import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PQuery import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* +import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PDisjunction class RelationDefinitionIndexer { public val PatternGenerator base; @@ -23,7 +24,8 @@ class RelationDefinitionIndexer { def generateRelationDefinitions( LogicProblem problem, Iterable relations, - Map fqn2PQuery) { + Map fqn2PQuery) + { val relation2PQuery = relations.toInvertedMap[ annotations.filter(TransfomedViatraQuery).head.patternFullyQualifiedName.lookup(fqn2PQuery) ] @@ -67,11 +69,12 @@ class RelationDefinitionIndexer { private def transformPattern(RelationDefinition relation, PQuery p, Modality modality) { try { + val bodies = (relation.annotations.filter(TransfomedViatraQuery).head.optimizedDisjunction as PDisjunction).bodies return ''' private pattern «relationDefinitionName(relation,modality)»( problem:LogicProblem, interpretation:PartialInterpretation, «FOR param : p.parameters SEPARATOR ', '»var_«param.name»«ENDFOR») - «FOR body : p.disjunctBodies.bodies SEPARATOR "or"»{ + «FOR body : bodies SEPARATOR "or"»{ find interpretation(problem,interpretation); «FOR constraint : body.constraints» «this.constraintTransformer.transformConstraint(constraint,modality,relation.annotations.filter(TransfomedViatraQuery).head.variableTrace)» -- cgit v1.2.3-70-g09d2