1 package jp.sourceforge.stigmata;
3 import java.util.ArrayList;
4 import java.util.Iterator;
9 * Set of {@link ComparisonPairFilter <Ccode>ComparisonPairFilter</code>}.
11 * @author Haruaki TAMADA
13 public class ComparisonPairFilterSet implements Iterable<ComparisonPairFilter>{
14 private List<ComparisonPairFilter> filters = new ArrayList<ComparisonPairFilter>();
16 private boolean matchall = true;
18 public boolean isFiltered(ComparisonPair pair){
20 if(isMatchAll()){ // all of criteria are matched?
22 for(ComparisonPairFilter filter: filters){
23 if(!filter.isFiltered(pair)){
29 else{ // any of criteria are matched
31 for(ComparisonPairFilter filter: filters){
32 if(filter.isFiltered(pair)){
42 * returns a flag that all filters must be matched.
44 public boolean isMatchAll(){
49 * returns a flag that any filters must be matched.
51 public boolean isMatchAny(){
56 * filtering if all criteria is matched.
58 public void setMatchAll(){
63 * filtering if any criterion is matched.
65 public void setMatchAny(){
69 public void setName(String name){
73 public String getName(){
77 public boolean addFilter(ComparisonPairFilter o){
78 return filters.add(o);
81 public void removeAllFilters(){
85 public ComparisonPairFilter getFilter(int index){
86 return filters.get(index);
90 public Iterator<ComparisonPairFilter> iterator(){
91 return filters.iterator();
94 public ComparisonPairFilter removeFilter(int index){
95 return filters.remove(index);
98 public int getFilterCount(){
99 return filters.size();
103 public String toString(){
104 StringBuilder sb = new StringBuilder("filterset{ ");
105 sb.append("name=").append(getName()).append(", ");
106 sb.append(isMatchAll()? "match_all": "match_any");
107 sb.append(", ").append(filters).append("}");
109 return new String(sb);