From 2b4ad89e72fdf9612854b27bc8dd818c8f062d35 Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Mon, 13 Jun 2011 22:19:31 +0200 Subject: Restructured fdsolver api and made first test succeed git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@423 72836036-5685-4462-b002-a69064685172 --- .../ai/fdsolver/constraint/FilterPropagator.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/jrummikub/ai/fdsolver/constraint/FilterPropagator.java (limited to 'src/jrummikub/ai/fdsolver/constraint/FilterPropagator.java') diff --git a/src/jrummikub/ai/fdsolver/constraint/FilterPropagator.java b/src/jrummikub/ai/fdsolver/constraint/FilterPropagator.java new file mode 100644 index 0000000..80518c9 --- /dev/null +++ b/src/jrummikub/ai/fdsolver/constraint/FilterPropagator.java @@ -0,0 +1,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 implements Propagator { + private Filter filter; + private Var var; + + public FilterPropagator(Filter filter, Var var) { + this.filter = filter; + this.var = var; + } + + @Override + public Collection> getWatchedVars() { + return Arrays.>asList(var); + } + + @Override + public void propagate() { + for(Iterator i = var.iterator(); i.hasNext();) { + if(!filter.accept(i.next())) + i.remove(); + } + } +} -- cgit v1.2.3