OSDN Git Service

change mode name experimental mode'
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / birthmarks / smc / SequentialMethodCallBirthmarkService.java
1 package jp.sourceforge.stigmata.birthmarks.smc;
2
3 /*
4  * $Id$
5  */
6
7 import jp.sourceforge.stigmata.BirthmarkComparator;
8 import jp.sourceforge.stigmata.BirthmarkElement;
9 import jp.sourceforge.stigmata.BirthmarkExtractor;
10 import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
11 import jp.sourceforge.stigmata.birthmarks.comparators.PlainBirthmarkComparator;
12 import jp.sourceforge.stigmata.spi.BirthmarkSpi;
13
14 /**
15  * 
16  * 
17  *
18  * @author Haruaki TAMADA
19  * @version $Revision$ 
20  */
21 public class SequentialMethodCallBirthmarkService extends AbstractBirthmarkService implements BirthmarkSpi{
22     private BirthmarkComparator comparator = new PlainBirthmarkComparator(this);
23     private BirthmarkExtractor extractor = new SequentialMethodCallBirthmarkExtractor(this);
24
25     public String getType(){
26         return "smc";
27     }
28
29     public String getDefaultDescription(){
30         return "Sequence of method call which order is appeared in method definition.";
31     }
32
33     public BirthmarkExtractor getExtractor(){
34         return extractor;
35     }
36
37     public BirthmarkComparator getComparator(){
38         return comparator;
39     }
40
41     public boolean isExperimental(){
42         return false;
43     }
44
45     public boolean isUserDefined(){
46         return false;
47     }
48
49         @Override
50         public BirthmarkElement buildBirthmarkElement(String value) {
51                 String className = value.substring(0, value.indexOf('#'));
52                 String methodName = value.substring(value.indexOf('#') + 1, value.lastIndexOf('!'));
53                 String signature = value.substring(value.lastIndexOf('!') + 1);
54
55                 return new MethodCallBirthmarkElement(className, methodName, signature);
56         }
57 }