OSDN Git Service

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