blob: 5a528a9e1ff48e38cee47375bf26764d441a750d (
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
26
27
28
29
30
31
32
33
34
35
36
|
package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse
import java.util.ArrayList
import java.util.Collection
import org.eclipse.viatra.dse.objectives.Comparators
import org.eclipse.viatra.dse.objectives.IGlobalConstraint
import org.eclipse.viatra.dse.objectives.impl.ConstraintsObjective
import org.eclipse.viatra.dse.objectives.impl.ConstraintsObjective.QueryConstraint
import org.eclipse.viatra.dse.objectives.impl.ModelQueriesGlobalConstraint
import org.eclipse.viatra.query.runtime.api.IPatternMatch
import org.eclipse.viatra.query.runtime.api.IQuerySpecification
import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
class WF2ObjectiveConverter {
def createCompletenessObjective(
Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> unfinishedWF)
{
val res = new ConstraintsObjective('''unfinishedWFs''',
unfinishedWF.map[
new QueryConstraint(it.fullyQualifiedName,it,2.0)
].toList
)
res.withComparator(Comparators.LOWER_IS_BETTER)
res.level = 2
return res
}
def IGlobalConstraint createInvalidationObjective(
Collection<? extends IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>>> invalidatedByWF)
{
return new ModelQueriesGlobalConstraint('''invalidatedWFs''',
new ArrayList(invalidatedByWF)
)
}
}
|