/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.util.filter;
/**
* A base class for Filters which implements behavior using delegation to an
* underlying filter.
*
* @param <T>
* The underlying type on which the filter applies.
*/
public abstract class AbstractDelegateFilter<T> implements Filter<T> {
protected Filter<T> filter;
public AbstractDelegateFilter() {
}
public AbstractDelegateFilter(Filter<T> filter) {
this.filter = filter;
}
public Filter<T> getFilter() {
return filter;
}
public void setFilter(Filter<T> filter) {
this.filter = filter;
}
// Subclass should override to do something other the simply delegate.
@Override
public boolean filter(T obj) {
return filter.filter(obj);
}
// Subclass should override to do something other the simply delegate.
@Override
public String toString() {
return filter.toString();
}
}