1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.json.filters;
18
19 import java.util.ArrayList;
20 import java.util.Iterator;
21 import java.util.List;
22
23 import net.sf.json.util.PropertyFilter;
24
25
26
27
28 public class CompositePropertyFilter implements PropertyFilter {
29 private List filters = new ArrayList();
30
31 public CompositePropertyFilter() {
32 this( null );
33 }
34
35 public CompositePropertyFilter( List filters ) {
36 if( filters != null ){
37 for( Iterator i = filters.iterator(); i.hasNext(); ){
38 Object filter = i.next();
39 if( filter instanceof PropertyFilter ){
40 this.filters.add( filter );
41 }
42 }
43 }
44 }
45
46 public void addPropertyFilter( PropertyFilter filter ) {
47 if( filter != null ){
48 filters.add( filter );
49 }
50 }
51
52 public boolean apply( Object source, String name, Object value ) {
53 for( Iterator i = filters.iterator(); i.hasNext(); ){
54 PropertyFilter filter = (PropertyFilter) i.next();
55 if( filter.apply( source, name, value ) ){
56 return true;
57 }
58 }
59 return false;
60 }
61
62 public void removePropertyFilter( PropertyFilter filter ) {
63 if( filter != null ){
64 filters.remove( filter );
65 }
66 }
67 }