All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.imqa.asm.HttpVisitor Maven / Gradle / Ivy

package io.imqa.asm;

import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;

public class HttpVisitor extends MethodVisitor {

    private InjectMethod injectMethod;

    protected HttpVisitor(int opcode, MethodVisitor mv, InjectMethod injectMethod) {
        super(opcode, mv);
        this.injectMethod = injectMethod;
    }

    @Override
    public void visitMethodInsn(int opcode, String owner, String name,
                                String desc, boolean itf) {
        onMethodBody();
    }

    protected void onMethodBody() {
        mv.visitTypeInsn(Opcodes.NEW, injectMethod.className);
        mv.visitInsn(Opcodes.DUP);
        // openConnection
        mv.visitTypeInsn(Opcodes.CHECKCAST, injectMethod.className);
        mv.visitMethodInsn(
                Opcodes.INVOKESPECIAL,
                injectMethod.className,
                injectMethod.methodName,
                injectMethod.desc,
                false);
//        mv.visitInsn(Opcodes.ATHROW);
    }

    @Override
    public void visitMaxs(int maxStack, int maxLocals) {
        super.visitMaxs(maxStack, maxLocals);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy