diff options
Diffstat (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend')
-rw-r--r-- | Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend deleted file mode 100644 index 4b9629df..00000000 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/MultiplicityGoalConstraintCalculator.xtend +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra | ||
2 | |||
3 | import org.eclipse.emf.common.notify.Notifier | ||
4 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification | ||
5 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine | ||
6 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher | ||
7 | import org.eclipse.viatra.query.runtime.emf.EMFScope | ||
8 | |||
9 | class MultiplicityGoalConstraintCalculator { | ||
10 | val String targetRelationName; | ||
11 | val IQuerySpecification<?> querySpecification; | ||
12 | var ViatraQueryMatcher<?> matcher; | ||
13 | |||
14 | new(String targetRelationName, IQuerySpecification<?> querySpecification) { | ||
15 | this.targetRelationName = targetRelationName | ||
16 | this.querySpecification = querySpecification | ||
17 | this.matcher = null | ||
18 | } | ||
19 | |||
20 | new(MultiplicityGoalConstraintCalculator other) { | ||
21 | this.targetRelationName = other.targetRelationName | ||
22 | this.querySpecification = other.querySpecification | ||
23 | this.matcher = null | ||
24 | } | ||
25 | |||
26 | def getName() { | ||
27 | targetRelationName | ||
28 | } | ||
29 | |||
30 | def init(Notifier notifier) { | ||
31 | val engine = ViatraQueryEngine.on(new EMFScope(notifier)) | ||
32 | matcher = querySpecification.getMatcher(engine) | ||
33 | } | ||
34 | |||
35 | def calculateValue() { | ||
36 | var res = 0 | ||
37 | val allMatches = this.matcher.allMatches | ||
38 | for(match : allMatches) { | ||
39 | //println(targetRelationName+ " missing multiplicity: "+match.get(3)) | ||
40 | val missingMultiplicity = match.get(4) as Integer | ||
41 | res += missingMultiplicity | ||
42 | } | ||
43 | //println(targetRelationName+ " all missing multiplicities: "+res) | ||
44 | return res | ||
45 | } | ||
46 | } \ No newline at end of file | ||