OSDN Git Service

Spiという名前をすべてServiceに変更した.
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / filter / AbstractComparisonPairFilter.java
1 package jp.sourceforge.stigmata.filter;
2
3 import jp.sourceforge.stigmata.ComparisonPairFilter;
4 import jp.sourceforge.stigmata.spi.ComparisonPairFilterService;
5
6 /**
7  * 
8  * @author Haruaki TAMADA
9  */
10 public abstract class AbstractComparisonPairFilter implements ComparisonPairFilter{
11     private ComparisonPairFilterService service;
12     private Criterion criterion = Criterion.EQUALS_AS;
13
14     public AbstractComparisonPairFilter(ComparisonPairFilterService service){
15         this.service = service;
16     }
17
18     @Override
19     public ComparisonPairFilterService getService(){
20         return service;
21     }
22
23     @Override
24     public Criterion getCriterion(){
25         return criterion;
26     }
27
28     @Override
29     public void setCriterion(Criterion criterion){
30         if(!isAcceptable(criterion)){
31             throw new IllegalArgumentException("illegal criterion: "
32                     + criterion + ": accepts only " + getAcceptableCriteria());
33         }
34         this.criterion = criterion;
35     }
36
37     @Override
38     public boolean isAcceptable(Criterion criterion){
39         Criterion[] criteria = getAcceptableCriteria();
40         for(int i = 0; i < criteria.length; i++){
41             if(criteria[i] == criterion){
42                 return true;
43             }
44         }
45         return false;
46     }
47 }