package timeflow.data.db.filter; import timeflow.data.db.Act; import timeflow.data.db.Field; public class MissingValueFilter extends ActFilter { private Field field; private boolean text, array, number; public MissingValueFilter(Field field) { this.field=field; text=field.getType()==String.class; array=field.getType()==String[].class; number=field.getType()==Double.class; } @Override public boolean accept(Act act) { Object o=act.get(field); return o==null || number && Double.isNaN(((Double)o).doubleValue()) || text && "".equals(o) || array && ((String[])o).length==0; } }