4771 |
19 Apr 18 |
nicklas |
1 |
package net.sf.basedb.relax.json; |
4771 |
19 Apr 18 |
nicklas |
2 |
|
4771 |
19 Apr 18 |
nicklas |
3 |
import java.util.Map; |
4771 |
19 Apr 18 |
nicklas |
4 |
|
4771 |
19 Apr 18 |
nicklas |
5 |
import org.json.simple.JSONObject; |
4771 |
19 Apr 18 |
nicklas |
6 |
|
4771 |
19 Apr 18 |
nicklas |
7 |
import net.sf.basedb.util.filter.Filter; |
4771 |
19 Apr 18 |
nicklas |
8 |
import net.sf.basedb.util.filter.NotNullFilter; |
4771 |
19 Apr 18 |
nicklas |
9 |
|
4771 |
19 Apr 18 |
nicklas |
10 |
/** |
4771 |
19 Apr 18 |
nicklas |
Wrapper around JSONObject that uses a filter |
4771 |
19 Apr 18 |
nicklas |
implementation before accepting values. For |
4771 |
19 Apr 18 |
nicklas |
example, use the {@link NotNullFilter} implementation |
4771 |
19 Apr 18 |
nicklas |
to ignore null values. |
4771 |
19 Apr 18 |
nicklas |
@since 1.2 |
4771 |
19 Apr 18 |
nicklas |
16 |
*/ |
4771 |
19 Apr 18 |
nicklas |
17 |
@SuppressWarnings({"rawtypes", "unchecked"}) |
4771 |
19 Apr 18 |
nicklas |
18 |
public class FilteredJSONObject |
4771 |
19 Apr 18 |
nicklas |
19 |
extends JSONObject |
4771 |
19 Apr 18 |
nicklas |
20 |
{ |
4771 |
19 Apr 18 |
nicklas |
21 |
|
4771 |
19 Apr 18 |
nicklas |
22 |
private static final long serialVersionUID = -5032543945179269026L; |
4771 |
19 Apr 18 |
nicklas |
23 |
private final Filter filter; |
4771 |
19 Apr 18 |
nicklas |
24 |
|
4771 |
19 Apr 18 |
nicklas |
25 |
public FilteredJSONObject(Filter filter) |
4771 |
19 Apr 18 |
nicklas |
26 |
{ |
4771 |
19 Apr 18 |
nicklas |
27 |
this.filter = filter; |
4771 |
19 Apr 18 |
nicklas |
28 |
} |
4771 |
19 Apr 18 |
nicklas |
29 |
|
4771 |
19 Apr 18 |
nicklas |
30 |
@Override |
5506 |
18 Jun 19 |
nicklas |
31 |
public Object put(String key, Object value) |
4771 |
19 Apr 18 |
nicklas |
32 |
{ |
4771 |
19 Apr 18 |
nicklas |
33 |
return filter.evaluate(value) ? super.put(key, value) : null; |
4771 |
19 Apr 18 |
nicklas |
34 |
} |
4771 |
19 Apr 18 |
nicklas |
35 |
|
4771 |
19 Apr 18 |
nicklas |
36 |
@Override |
5506 |
18 Jun 19 |
nicklas |
37 |
public void putAll(Map<? extends String, ?> m) |
4771 |
19 Apr 18 |
nicklas |
38 |
{ |
5506 |
18 Jun 19 |
nicklas |
39 |
for (Map.Entry<? extends String, ?> e : m.entrySet()) |
4771 |
19 Apr 18 |
nicklas |
40 |
{ |
5506 |
18 Jun 19 |
nicklas |
41 |
if (filter.evaluate(e.getValue())) |
5506 |
18 Jun 19 |
nicklas |
42 |
{ |
5506 |
18 Jun 19 |
nicklas |
43 |
super.put(e.getKey(), e.getValue()); |
5506 |
18 Jun 19 |
nicklas |
44 |
} |
4771 |
19 Apr 18 |
nicklas |
45 |
} |
4771 |
19 Apr 18 |
nicklas |
46 |
super.putAll(m); |
4771 |
19 Apr 18 |
nicklas |
47 |
} |
4771 |
19 Apr 18 |
nicklas |
48 |
|
4771 |
19 Apr 18 |
nicklas |
49 |
|
4771 |
19 Apr 18 |
nicklas |
50 |
} |