protected abstract bool FilterInternal(T item, Filterer <T> f1, Filterer <T> f2);
public Filterer_BinaryOperation(Filterer <T> f1, Filterer <T> f2) { filterer_left = f1; filterer_right = f2; }
public Filterer_BinaryOperation_Or(Filterer <T> f1, Filterer <T> f2) : base(f1, f2) { }
protected override bool FilterInternal(T item, Filterer <T> f1, Filterer <T> f2) { return(f1.Filter(item) || f2.Filter(item)); }
public Filterer_UnaryOperation(Filterer <T> f) { filterer = f; }
public Filterer_UnaryOperation_Not(Filterer <T> f) : base(f) { }
protected override bool FilterInternal(T item, Filterer <T> f) { return(f.Filter(item) == false); }