1 4 package com.openedit.util.strainer; 5 6 11 public class OrFilter implements CompositeFilter 12 { 13 protected Filter[] fieldFilters; 14 15 18 public OrFilter() 19 { 20 } 21 22 27 public OrFilter(Filter[] inFilters) 28 { 29 fieldFilters = inFilters; 30 } 31 32 38 public OrFilter(Filter inFilter1, Filter inFilter2) 39 { 40 fieldFilters = new Filter[] { inFilter1, inFilter2 }; 41 } 42 43 48 public Filter[] getFilters() 49 { 50 return fieldFilters; 51 } 52 53 58 public void setFilters(Filter[] newFilters) 59 { 60 fieldFilters = newFilters; 61 } 62 63 72 public boolean passes(Object inObj) throws FilterException 73 { 74 for (int i = 0; i < fieldFilters.length; i++) 75 { 76 if (fieldFilters[i].passes(inObj)) 77 { 78 return true; 79 } 80 } 81 return false; 82 } 83 84 87 public void accept(FilterVisitor inFilterVisitor) throws FilterException 88 { 89 if (inFilterVisitor instanceof OrFilterVisitor) 90 { 91 ((OrFilterVisitor) inFilterVisitor).visitOrFilter(this); 92 } 93 } 94 95 98 public String toString() 99 { 100 StringBuffer buffer = new StringBuffer (); 101 Filter[] filters = getFilters(); 102 for (int i = 0; i < filters.length; i++) 103 { 104 if (i > 0) 105 { 106 buffer.append(" or "); 107 } 108 buffer.append("("); 109 buffer.append(filters[i].toString()); 110 buffer.append(")"); 111 } 112 return buffer.toString(); 113 } 114 } | Popular Tags |