public Interface Predicate {
public boolean isTruthy(Object o);
}
public abstract class Filter {
public abstract makePredicate(int k);
}
public class TimeFilter extends Filter {
public Predicate makePredicate(int k) {
return new Predicate() {
public boolean isTruthy(Object o) {
return o.someBoolean;
}
}
}
}