package org.oddjob.beanbus; import java.util.Collection; /** * For Standard Filter Components to extend. * * @author rob * * @param <F> From Type * @param <T> To Type */ abstract public class AbstractFilter<F, T> extends AbstractDestination<F> implements BusFilter<F, T> { private Collection<? super T> to; private String name; @Override public final boolean add(F bean) { T filtered = filter(bean); if (filtered == null) { return false; } else if (to == null) { return false; } else { to.add(filtered); return true; } } abstract protected T filter(F from); public Collection<? super T> getTo() { return to; } @Override public void setTo(Collection<? super T> to) { this.to = to; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { if (name == null) { return getClass().getSimpleName(); } else { return name; } } }