OSDN Git Service

extractor and comparator receive BirthmarkContext object
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / birthmarks / fuc / FrequencyUsedClassesBirthmarkExtractor.java
1 package jp.sourceforge.stigmata.birthmarks.fuc;
2
3 /*
4  * $Id$
5  */
6
7 import jp.sourceforge.stigmata.Birthmark;
8 import jp.sourceforge.stigmata.BirthmarkContext;
9 import jp.sourceforge.stigmata.ExtractionUnit;
10 import jp.sourceforge.stigmata.birthmarks.ASMBirthmarkExtractor;
11 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
12 import jp.sourceforge.stigmata.birthmarks.FrequencyBirthmark;
13 import jp.sourceforge.stigmata.birthmarks.uc.UsedClassesBirthmarkExtractVisitor;
14 import jp.sourceforge.stigmata.spi.BirthmarkSpi;
15
16 import org.objectweb.asm.ClassWriter;
17
18 /**
19  * 
20  * @author Haruaki TAMADA
21  * @version $Revision$ 
22  */
23 public class FrequencyUsedClassesBirthmarkExtractor extends ASMBirthmarkExtractor{
24     public FrequencyUsedClassesBirthmarkExtractor(BirthmarkSpi spi){
25         super(spi);
26     }
27
28     public FrequencyUsedClassesBirthmarkExtractor(){
29         super();
30     }
31
32     @Override
33     public BirthmarkExtractVisitor createExtractVisitor(ClassWriter writer, Birthmark birthmark, BirthmarkContext context){
34         return new UsedClassesBirthmarkExtractVisitor(writer, birthmark, context);
35     }
36
37     @Override
38     public ExtractionUnit[] getAcceptableUnits(){
39         return new ExtractionUnit[] {
40             ExtractionUnit.CLASS, ExtractionUnit.PACKAGE, ExtractionUnit.ARCHIVE, 
41         };
42     }
43
44     @Override
45     public Birthmark createBirthmark(){
46         return new FrequencyBirthmark(getProvider().getType());
47     }
48 }