OSDN Git Service

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