Normand Briere
2018-07-07 e416acb9b012b17d1efe49ad2199ea7132d874d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
   }
 
}