package knorxx.framework.generator.reloading;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
/**
*
* @author sj
*/
public abstract class ClassChangeVisitor extends ClassVisitor {
private final ClassWriter classWriter;
public ClassChangeVisitor(ClassWriter classWriter) {
super(Opcodes.ASM5, classWriter);
this.classWriter = classWriter;
}
public byte[] toByteArray() {
return classWriter.toByteArray();
}
public byte[] apply(byte[] classData) {
ClassReader classReader = new ClassReader(classData);
classReader.accept(this, 0);
return toByteArray();
}
}