aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/rules/GoalConstraintProvider.xtend
blob: d2ee80dc93c19709eed0cb74983c72e2fb838488 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.rules

import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.cardinality.MultiplicityGoalConstraintCalculator
import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.GeneratedPatterns
import java.util.ArrayList

class GoalConstraintProvider {
	
	def getUnfinishedMultiplicityQueries(LogicProblem p, GeneratedPatterns patterns) {
		val res = new ArrayList()
		for (entry : patterns.multiplicityConstraintQueries.entrySet) {
			val constraint = entry.key
			if (constraint.constrainsUnfinished) {
				val queries = entry.value
				val targetRelationName = constraint.relation.name
				val query = queries.unfinishedMultiplicityQuery
				val containment = constraint.containment
				res += new MultiplicityGoalConstraintCalculator(targetRelationName, query, containment, 1)
			}
		}
		return res
	}

}