Java 类org.mockito.asm.MethodVisitor 实例源码

项目:mockito-cglib    文件:FrameNode.java   
/**
 * Makes the given visitor visit this stack map frame.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    switch (type) {
        case Opcodes.F_NEW:
        case Opcodes.F_FULL:
            mv.visitFrame(type,
                    local.size(),
                    asArray(local),
                    stack.size(),
                    asArray(stack));
            break;
        case Opcodes.F_APPEND:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_CHOP:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_SAME:
            mv.visitFrame(type, 0, null, 0, null);
            break;
        case Opcodes.F_SAME1:
            mv.visitFrame(type, 0, null, 1, asArray(stack));
            break;
    }
}
项目:nedis    文件:TestNedisClientImpl.java   
@Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature,
        String[] exceptions) {
    if ((Opcodes.ACC_PUBLIC & access) == 0 || EXCLUDE_METHODS.contains(name)
            || name.contains("<")) {
        return null;
    }
    if (name.endsWith("0")) {
        name = name.substring(0, name.length() - 1);
    }
    int index = -1;
    for (int i = 0; i < name.length(); i++) {
        if (Character.isUpperCase(name.charAt(i))) {
            index = i;
            break;
        }
    }
    if (index < 0) {
        return new FindEnumVisitor(name, name.toUpperCase(), null);
    } else {
        String cmd = name.substring(0, index).toUpperCase();
        return new FindEnumVisitor(name, cmd, name.substring(index).toUpperCase());
    }
}
项目:astor    文件:FrameNode.java   
/**
 * Makes the given visitor visit this stack map frame.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    switch (type) {
        case Opcodes.F_NEW:
        case Opcodes.F_FULL:
            mv.visitFrame(type,
                    local.size(),
                    asArray(local),
                    stack.size(),
                    asArray(stack));
            break;
        case Opcodes.F_APPEND:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_CHOP:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_SAME:
            mv.visitFrame(type, 0, null, 0, null);
            break;
        case Opcodes.F_SAME1:
            mv.visitFrame(type, 0, null, 1, asArray(stack));
            break;
    }
}
项目:astor    文件:FrameNode.java   
/**
 * Makes the given visitor visit this stack map frame.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    switch (type) {
        case Opcodes.F_NEW:
        case Opcodes.F_FULL:
            mv.visitFrame(type,
                    local.size(),
                    asArray(local),
                    stack.size(),
                    asArray(stack));
            break;
        case Opcodes.F_APPEND:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_CHOP:
            mv.visitFrame(type, local.size(), asArray(local), 0, null);
            break;
        case Opcodes.F_SAME:
            mv.visitFrame(type, 0, null, 0, null);
            break;
        case Opcodes.F_SAME1:
            mv.visitFrame(type, 0, null, 1, asArray(stack));
            break;
    }
}
项目:mockito-cglib    文件:LocalVariablesSorter.java   
public LocalVariablesSorter(
    final int access,
    final String desc,
    final MethodVisitor mv)
{
    super(mv);
    state = new State();
    Type[] args = Type.getArgumentTypes(desc);
    state.nextLocal = ((Opcodes.ACC_STATIC & access) != 0) ? 0 : 1;
    for (int i = 0; i < args.length; i++) {
        state.nextLocal += args[i].getSize();
    }
    firstLocal = state.nextLocal;
}
项目:mockito-cglib    文件:ClassNode.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    MethodNode mn = new MethodNode(access,
            name,
            desc,
            signature,
            exceptions);
    methods.add(mn);
    return mn;
}
项目:mockito-cglib    文件:LocalVariableNode.java   
/**
 * Makes the given visitor visit this local variable declaration.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    mv.visitLocalVariable(name,
            desc,
            signature,
            start.getLabel(),
            end.getLabel(),
            index);
}
项目:mockito-cglib    文件:InsnList.java   
/**
 * Makes the given visitor visit all of the instructions in this list.
 * 
 * @param mv the method visitor that must visit the instructions.
 */
public void accept(final MethodVisitor mv) {
    AbstractInsnNode insn = first;
    while (insn != null) {
        insn.accept(mv);
        insn = insn.next;
    }
}
项目:mockito-cglib    文件:LookupSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    int[] keys = new int[this.keys.size()];
    for (int i = 0; i < keys.length; ++i) {
        keys[i] = ((Integer) this.keys.get(i)).intValue();
    }
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitLookupSwitchInsn(dflt.getLabel(), keys, labels);
}
项目:mockito-cglib    文件:MethodNode.java   
/**
 * Makes the given class visitor visit this method.
 * 
 * @param cv a class visitor.
 */
public void accept(final ClassVisitor cv) {
    String[] exceptions = new String[this.exceptions.size()];
    this.exceptions.toArray(exceptions);
    MethodVisitor mv = cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions);
    if (mv != null) {
        accept(mv);
    }
}
项目:mockito-cglib    文件:TableSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitTableSwitchInsn(min, max, dflt.getLabel(), labels);
}
项目:mockito-cglib    文件:CheckClassAdapter.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    checkState();
    checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE
            + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC
            + Opcodes.ACC_FINAL + Opcodes.ACC_SYNCHRONIZED
            + Opcodes.ACC_BRIDGE + Opcodes.ACC_VARARGS + Opcodes.ACC_NATIVE
            + Opcodes.ACC_ABSTRACT + Opcodes.ACC_STRICT
            + Opcodes.ACC_SYNTHETIC + Opcodes.ACC_DEPRECATED);
    CheckMethodAdapter.checkMethodIdentifier(name, "method name");
    CheckMethodAdapter.checkMethodDesc(desc);
    if (signature != null) {
        CheckMethodAdapter.checkMethodSignature(signature);
    }
    if (exceptions != null) {
        for (int i = 0; i < exceptions.length; ++i) {
            CheckMethodAdapter.checkInternalName(exceptions[i],
                    "exception name at index " + i);
        }
    }
    return new CheckMethodAdapter(cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions));
}
项目:mockito-cglib    文件:ASMifierClassVisitor.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    buf.setLength(0);
    buf.append("{\n");
    buf.append("mv = cw.visitMethod(");
    appendAccess(access);
    buf.append(", ");
    appendConstant(name);
    buf.append(", ");
    appendConstant(desc);
    buf.append(", ");
    appendConstant(signature);
    buf.append(", ");
    if (exceptions != null && exceptions.length > 0) {
        buf.append("new String[] {");
        for (int i = 0; i < exceptions.length; ++i) {
            buf.append(i == 0 ? " " : ", ");
            appendConstant(exceptions[i]);
        }
        buf.append(" }");
    } else {
        buf.append("null");
    }
    buf.append(");\n");
    text.add(buf.toString());
    ASMifierMethodVisitor acv = createASMifierMethodVisitor();
    text.add(acv.getText());
    text.add("}\n");
    return acv;
}
项目:astor    文件:LocalVariablesSorter.java   
public LocalVariablesSorter(
    final int access,
    final String desc,
    final MethodVisitor mv)
{
    super(mv);
    state = new State();
    Type[] args = Type.getArgumentTypes(desc);
    state.nextLocal = ((Opcodes.ACC_STATIC & access) != 0) ? 0 : 1;
    for (int i = 0; i < args.length; i++) {
        state.nextLocal += args[i].getSize();
    }
    firstLocal = state.nextLocal;
}
项目:astor    文件:ClassNode.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    MethodNode mn = new MethodNode(access,
            name,
            desc,
            signature,
            exceptions);
    methods.add(mn);
    return mn;
}
项目:astor    文件:LocalVariableNode.java   
/**
 * Makes the given visitor visit this local variable declaration.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    mv.visitLocalVariable(name,
            desc,
            signature,
            start.getLabel(),
            end.getLabel(),
            index);
}
项目:astor    文件:InsnList.java   
/**
 * Makes the given visitor visit all of the instructions in this list.
 * 
 * @param mv the method visitor that must visit the instructions.
 */
public void accept(final MethodVisitor mv) {
    AbstractInsnNode insn = first;
    while (insn != null) {
        insn.accept(mv);
        insn = insn.next;
    }
}
项目:astor    文件:LookupSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    int[] keys = new int[this.keys.size()];
    for (int i = 0; i < keys.length; ++i) {
        keys[i] = ((Integer) this.keys.get(i)).intValue();
    }
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitLookupSwitchInsn(dflt.getLabel(), keys, labels);
}
项目:astor    文件:MethodNode.java   
/**
 * Makes the given class visitor visit this method.
 * 
 * @param cv a class visitor.
 */
public void accept(final ClassVisitor cv) {
    String[] exceptions = new String[this.exceptions.size()];
    this.exceptions.toArray(exceptions);
    MethodVisitor mv = cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions);
    if (mv != null) {
        accept(mv);
    }
}
项目:astor    文件:TableSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitTableSwitchInsn(min, max, dflt.getLabel(), labels);
}
项目:astor    文件:CheckClassAdapter.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    checkState();
    checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE
            + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC
            + Opcodes.ACC_FINAL + Opcodes.ACC_SYNCHRONIZED
            + Opcodes.ACC_BRIDGE + Opcodes.ACC_VARARGS + Opcodes.ACC_NATIVE
            + Opcodes.ACC_ABSTRACT + Opcodes.ACC_STRICT
            + Opcodes.ACC_SYNTHETIC + Opcodes.ACC_DEPRECATED);
    CheckMethodAdapter.checkMethodIdentifier(name, "method name");
    CheckMethodAdapter.checkMethodDesc(desc);
    if (signature != null) {
        CheckMethodAdapter.checkMethodSignature(signature);
    }
    if (exceptions != null) {
        for (int i = 0; i < exceptions.length; ++i) {
            CheckMethodAdapter.checkInternalName(exceptions[i],
                    "exception name at index " + i);
        }
    }
    return new CheckMethodAdapter(cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions));
}
项目:astor    文件:ASMifierClassVisitor.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    buf.setLength(0);
    buf.append("{\n");
    buf.append("mv = cw.visitMethod(");
    appendAccess(access);
    buf.append(", ");
    appendConstant(name);
    buf.append(", ");
    appendConstant(desc);
    buf.append(", ");
    appendConstant(signature);
    buf.append(", ");
    if (exceptions != null && exceptions.length > 0) {
        buf.append("new String[] {");
        for (int i = 0; i < exceptions.length; ++i) {
            buf.append(i == 0 ? " " : ", ");
            appendConstant(exceptions[i]);
        }
        buf.append(" }");
    } else {
        buf.append("null");
    }
    buf.append(");\n");
    text.add(buf.toString());
    ASMifierMethodVisitor acv = createASMifierMethodVisitor();
    text.add(acv.getText());
    text.add("}\n");
    return acv;
}
项目:astor    文件:LocalVariablesSorter.java   
public LocalVariablesSorter(
    final int access,
    final String desc,
    final MethodVisitor mv)
{
    super(mv);
    state = new State();
    Type[] args = Type.getArgumentTypes(desc);
    state.nextLocal = ((Opcodes.ACC_STATIC & access) != 0) ? 0 : 1;
    for (int i = 0; i < args.length; i++) {
        state.nextLocal += args[i].getSize();
    }
    firstLocal = state.nextLocal;
}
项目:astor    文件:ClassNode.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    MethodNode mn = new MethodNode(access,
            name,
            desc,
            signature,
            exceptions);
    methods.add(mn);
    return mn;
}
项目:astor    文件:LocalVariableNode.java   
/**
 * Makes the given visitor visit this local variable declaration.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    mv.visitLocalVariable(name,
            desc,
            signature,
            start.getLabel(),
            end.getLabel(),
            index);
}
项目:astor    文件:InsnList.java   
/**
 * Makes the given visitor visit all of the instructions in this list.
 * 
 * @param mv the method visitor that must visit the instructions.
 */
public void accept(final MethodVisitor mv) {
    AbstractInsnNode insn = first;
    while (insn != null) {
        insn.accept(mv);
        insn = insn.next;
    }
}
项目:astor    文件:LookupSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    int[] keys = new int[this.keys.size()];
    for (int i = 0; i < keys.length; ++i) {
        keys[i] = ((Integer) this.keys.get(i)).intValue();
    }
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitLookupSwitchInsn(dflt.getLabel(), keys, labels);
}
项目:astor    文件:MethodNode.java   
/**
 * Makes the given class visitor visit this method.
 * 
 * @param cv a class visitor.
 */
public void accept(final ClassVisitor cv) {
    String[] exceptions = new String[this.exceptions.size()];
    this.exceptions.toArray(exceptions);
    MethodVisitor mv = cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions);
    if (mv != null) {
        accept(mv);
    }
}
项目:astor    文件:TableSwitchInsnNode.java   
public void accept(final MethodVisitor mv) {
    Label[] labels = new Label[this.labels.size()];
    for (int i = 0; i < labels.length; ++i) {
        labels[i] = ((LabelNode) this.labels.get(i)).getLabel();
    }
    mv.visitTableSwitchInsn(min, max, dflt.getLabel(), labels);
}
项目:astor    文件:CheckClassAdapter.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    checkState();
    checkAccess(access, Opcodes.ACC_PUBLIC + Opcodes.ACC_PRIVATE
            + Opcodes.ACC_PROTECTED + Opcodes.ACC_STATIC
            + Opcodes.ACC_FINAL + Opcodes.ACC_SYNCHRONIZED
            + Opcodes.ACC_BRIDGE + Opcodes.ACC_VARARGS + Opcodes.ACC_NATIVE
            + Opcodes.ACC_ABSTRACT + Opcodes.ACC_STRICT
            + Opcodes.ACC_SYNTHETIC + Opcodes.ACC_DEPRECATED);
    CheckMethodAdapter.checkMethodIdentifier(name, "method name");
    CheckMethodAdapter.checkMethodDesc(desc);
    if (signature != null) {
        CheckMethodAdapter.checkMethodSignature(signature);
    }
    if (exceptions != null) {
        for (int i = 0; i < exceptions.length; ++i) {
            CheckMethodAdapter.checkInternalName(exceptions[i],
                    "exception name at index " + i);
        }
    }
    return new CheckMethodAdapter(cv.visitMethod(access,
            name,
            desc,
            signature,
            exceptions));
}
项目:astor    文件:ASMifierClassVisitor.java   
public MethodVisitor visitMethod(
    final int access,
    final String name,
    final String desc,
    final String signature,
    final String[] exceptions)
{
    buf.setLength(0);
    buf.append("{\n");
    buf.append("mv = cw.visitMethod(");
    appendAccess(access);
    buf.append(", ");
    appendConstant(name);
    buf.append(", ");
    appendConstant(desc);
    buf.append(", ");
    appendConstant(signature);
    buf.append(", ");
    if (exceptions != null && exceptions.length > 0) {
        buf.append("new String[] {");
        for (int i = 0; i < exceptions.length; ++i) {
            buf.append(i == 0 ? " " : ", ");
            appendConstant(exceptions[i]);
        }
        buf.append(" }");
    } else {
        buf.append("null");
    }
    buf.append(");\n");
    text.add(buf.toString());
    ASMifierMethodVisitor acv = createASMifierMethodVisitor();
    text.add(acv.getText());
    text.add("}\n");
    return acv;
}
项目:mockito-cglib    文件:TryCatchBlockNode.java   
/**
 * Makes the given visitor visit this try catch block.
 * 
 * @param mv a method visitor.
 */
public void accept(final MethodVisitor mv) {
    mv.visitTryCatchBlock(start.getLabel(), end.getLabel(), handler == null
            ? null
            : handler.getLabel(), type);
}
项目:mockito-cglib    文件:TypeInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitTypeInsn(opcode, desc);
}
项目:mockito-cglib    文件:MethodInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitMethodInsn(opcode, owner, name, desc);
}
项目:mockito-cglib    文件:IntInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitIntInsn(opcode, operand);
}
项目:mockito-cglib    文件:FieldInsnNode.java   
public void accept(final MethodVisitor cv) {
    cv.visitFieldInsn(opcode, owner, name, desc);
}
项目:mockito-cglib    文件:LdcInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitLdcInsn(cst);
}
项目:mockito-cglib    文件:VarInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitVarInsn(opcode, var);
}
项目:mockito-cglib    文件:JumpInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitJumpInsn(opcode, label.getLabel());
}
项目:mockito-cglib    文件:IincInsnNode.java   
public void accept(final MethodVisitor mv) {
    mv.visitIincInsn(var, incr);
}