package com.revolsys.swing.table.record.filter; import java.util.function.BiFunction; import javax.swing.RowFilter; import javax.swing.table.TableModel; public class BiFunctionRowFilter<M extends TableModel> extends RowFilter<M, Integer> { public static <M1 extends TableModel> BiFunctionRowFilter<M1> newFilter( final BiFunction<M1, Integer, Boolean> function) { if (function == null) { return null; } else { return new BiFunctionRowFilter<>(function); } } private final BiFunction<M, Integer, Boolean> function; public BiFunctionRowFilter(final BiFunction<M, Integer, Boolean> function) { this.function = function; } @Override public boolean include(final Entry<? extends M, ? extends Integer> entry) { final M model = entry.getModel(); final Integer identifier = entry.getIdentifier(); return this.function.apply(model, identifier); } }