OSDN Git Service

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