1 package jp.sourceforge.stigmata.birthmarks.kgram;
3 import java.util.ArrayList;
6 import jp.sourceforge.stigmata.Birthmark;
7 import jp.sourceforge.stigmata.BirthmarkContext;
8 import jp.sourceforge.stigmata.birthmarks.BirthmarkExtractVisitor;
10 import org.objectweb.asm.ClassVisitor;
11 import org.objectweb.asm.MethodVisitor;
15 * @author Haruaki TAMADA
17 public class KGramBasedBirthmarkExtractVisitor extends BirthmarkExtractVisitor{
19 private List<Integer> opcodes = new ArrayList<Integer>();
21 public KGramBasedBirthmarkExtractVisitor(ClassVisitor visitor,
22 Birthmark birthmark, BirthmarkContext context){
23 super(visitor, birthmark, context);
26 public int getKValue(){
30 public void setKValue(int kvalue){
35 public void visitEnd(){
36 KGramBuilder builder = KGramBuilder.getInstance();
37 KGram<Integer>[] kgrams = builder.<Integer>buildKGram(
41 for(KGram<Integer> kgram: kgrams){
42 addElement(new KGramBasedBirthmarkElement<Integer>(kgram));
47 public MethodVisitor visitMethod(int arg0, String arg1, String arg2,
48 String arg3, String[] arg4){
49 MethodVisitor visitor = super.visitMethod(
50 arg0, arg1, arg2, arg3, arg4
52 MethodVisitor opcodeVisitor =
53 new OpcodeExtractionMethodVisitor(visitor, opcodes);