blob: 80518c9d77ed48629d5978e0affbf7e65628d0b2 (
plain)
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
|
package jrummikub.ai.fdsolver.constraint;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import jrummikub.ai.fdsolver.Propagator;
import jrummikub.ai.fdsolver.Var;
public class FilterPropagator<T> implements Propagator {
private Filter<T> filter;
private Var<T> var;
public FilterPropagator(Filter<T> filter, Var<T> var) {
this.filter = filter;
this.var = var;
}
@Override
public Collection<Var<?>> getWatchedVars() {
return Arrays.<Var<?>>asList(var);
}
@Override
public void propagate() {
for(Iterator<T> i = var.iterator(); i.hasNext();) {
if(!filter.accept(i.next()))
i.remove();
}
}
}
|