class InstructionAdapter extends MethodVisitor {

  @Override
  public void visitTypeInsn(final int opcode, final String type) {
    Type objectType = Type.getObjectType(type);
    switch (opcode) {
      case Opcodes.NEW:
        anew(objectType);
        break;
      case Opcodes.ANEWARRAY:
        newarray(objectType);
        break;
      case Opcodes.CHECKCAST:
        checkcast(objectType);
        break;
      case Opcodes.INSTANCEOF:
        instanceOf(objectType);
        break;
      default:
        throw new IllegalArgumentException();
    }
  }

  public  InstructionAdapter(final MethodVisitor methodVisitor);
  protected  InstructionAdapter(final int api, final MethodVisitor methodVisitor);

}