OSDN Git Service

9b22c247c123de38ea170442018aa2da03e513ef
[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  */
22 public class FrequencyUsedClassesBirthmarkExtractor extends ASMBirthmarkExtractor{
23     public FrequencyUsedClassesBirthmarkExtractor(BirthmarkSpi spi){
24         super(spi);
25     }
26
27     public FrequencyUsedClassesBirthmarkExtractor(){
28         super();
29     }
30
31     @Override
32     public BirthmarkExtractVisitor createExtractVisitor(ClassWriter writer, Birthmark birthmark, BirthmarkContext context){
33         return new UsedClassesBirthmarkExtractVisitor(writer, birthmark, context);
34     }
35
36     @Override
37     public ExtractionUnit[] getAcceptableUnits(){
38         return new ExtractionUnit[] {
39             ExtractionUnit.CLASS, ExtractionUnit.PACKAGE, ExtractionUnit.ARCHIVE, 
40         };
41     }
42
43     @Override
44     public Birthmark createBirthmark(){
45         return new FrequencyBirthmark(getProvider().getType());
46     }
47 }