public class io.vertx.serviceproxy.generator.ServiceProxyHandlerGen extends io.vertx.codegen.Generator<io.vertx.serviceproxy.generator.model.ProxyModel>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.serviceproxy.generator.ServiceProxyHandlerGen
  super_class: io.vertx.codegen.Generator
{
  public final io.vertx.serviceproxy.generator.GeneratorUtils utils;
    descriptor: Lio/vertx/serviceproxy/generator/GeneratorUtils;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public static final java.util.Map<java.lang.String, java.lang.String> numericMapping;
    descriptor: Ljava/util/Map;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private static volatile int[] $SWITCH_TABLE$io$vertx$codegen$type$ClassKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 24
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
         1: .line 27
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "byte"
            ldc "byte"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 28
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Byte"
            ldc "byte"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 29
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "short"
            ldc "short"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 30
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Short"
            ldc "short"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 31
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "int"
            ldc "int"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 32
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Integer"
            ldc "int"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 33
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "long"
            ldc "long"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 34
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Long"
            ldc "long"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 35
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "float"
            ldc "float"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 36
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Float"
            ldc "float"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 37
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "double"
            ldc "double"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 38
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            ldc "java.lang.Double"
            ldc "double"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 39
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.serviceproxy.generator.GeneratorUtils);
    descriptor: (Lio/vertx/serviceproxy/generator/GeneratorUtils;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.GeneratorUtils utils
         0: .line 41
            aload 0 /* this */
            invokespecial io.vertx.codegen.Generator.<init>:()V
         1: .line 42
            aload 0 /* this */
            ldc "proxy"
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            putfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.kinds:Ljava/util/Set;
         2: .line 43
            aload 0 /* this */
            ldc "service_proxy_handler"
            putfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.name:Ljava/lang/String;
         3: .line 44
            aload 0 /* this */
            aload 1 /* utils */
            putfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
         4: .line 45
            return
        end local 1 // io.vertx.serviceproxy.generator.GeneratorUtils utils
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    5     1  utils  Lio/vertx/serviceproxy/generator/GeneratorUtils;
    MethodParameters:
       Name  Flags
      utils  

  public java.util.Collection<java.lang.Class<? extends java.lang.annotation.Annotation>> annotations();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
         0: .line 49
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lio/vertx/codegen/annotations/ProxyGen;
            aastore
            dup
            iconst_1
            ldc Lio/vertx/codegen/annotations/ModuleGen;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
    Signature: ()Ljava/util/Collection<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;>;

  public java.lang.String filename(io.vertx.serviceproxy.generator.model.ProxyModel);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
         0: .line 54
            new java.lang.StringBuilder
            dup
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfacePackageName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.className:(Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".java"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    1     1  model  Lio/vertx/serviceproxy/generator/model/ProxyModel;
    MethodParameters:
       Name  Flags
      model  

  public java.lang.String className(io.vertx.serviceproxy.generator.model.ProxyModel);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
         0: .line 58
            new java.lang.StringBuilder
            dup
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "VertxProxyHandler"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    1     1  model  Lio/vertx/serviceproxy/generator/model/ProxyModel;
    MethodParameters:
       Name  Flags
      model  

  public java.util.stream.Stream<java.lang.String> additionalImports();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
         0: .line 61
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            areturn
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
    Signature: ()Ljava/util/stream/Stream<Ljava/lang/String;>;

  public java.lang.String render(io.vertx.serviceproxy.generator.model.ProxyModel, int, int, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyModel;IILjava/util/Map;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        start local 2 // int index
        start local 3 // int size
        start local 4 // java.util.Map session
         0: .line 65
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 5 /* buffer */
        start local 5 // java.io.StringWriter buffer
         1: .line 66
            new io.vertx.codegen.writer.CodeWriter
            dup
            aload 5 /* buffer */
            invokespecial io.vertx.codegen.writer.CodeWriter.<init>:(Ljava/io/Writer;)V
            astore 6 /* writer */
        start local 6 // io.vertx.codegen.writer.CodeWriter writer
         2: .line 67
            aload 0 /* this */
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.className:(Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/lang/String;
            astore 7 /* className */
        start local 7 // java.lang.String className
         3: .line 68
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.classHeader:(Ljava/io/PrintWriter;)V
         4: .line 69
            aload 6 /* writer */
            new java.lang.StringBuilder
            dup
            ldc "package "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfacePackageName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
         5: .line 70
            aload 6 /* writer */
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
            pop
         6: .line 71
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceFQCN:()Ljava/lang/String;
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.writeImport:(Ljava/io/PrintWriter;Ljava/lang/String;)V
         7: .line 72
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.handlerGenImports:(Ljava/io/PrintWriter;)V
         8: .line 73
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.additionalImports:(Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/util/stream/Stream;
            aload 0 /* this */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.additionalImports:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 6 /* writer */
            invokedynamic accept(Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;Lio/vertx/codegen/writer/CodeWriter;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.lambda$0(Lio/vertx/codegen/writer/CodeWriter;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         9: .line 74
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.roger:(Ljava/io/PrintWriter;)V
        10: .line 75
            aload 6 /* writer */
        11: .line 76
            ldc "@SuppressWarnings({\"unchecked\", \"rawtypes\"})\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        12: .line 77
            new java.lang.StringBuilder
            dup
            ldc "public class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " extends ProxyHandler {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        13: .line 78
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
        14: .line 79
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        15: .line 80
            ldc "public static final long DEFAULT_CONNECTION_TIMEOUT = 5 * 60; // 5 minutes \n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        16: .line 81
            ldc "private final Vertx vertx"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        17: .line 82
            new java.lang.StringBuilder
            dup
            ldc "private final "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " service"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        18: .line 83
            ldc "private final long timerID"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        19: .line 84
            ldc "private long lastAccessed"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        20: .line 85
            ldc "private final long timeoutSeconds"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        21: .line 86
            ldc "private final boolean includeDebugInfo"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        22: .line 87
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
        23: .line 88
            new java.lang.StringBuilder
            dup
            ldc "public "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(Vertx vertx, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " service){\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        24: .line 89
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        25: .line 90
            ldc "this(vertx, service, DEFAULT_CONNECTION_TIMEOUT)"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        26: .line 91
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        27: .line 92
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        28: .line 93
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
        29: .line 94
            new java.lang.StringBuilder
            dup
            ldc "public "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(Vertx vertx, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " service, long timeoutInSecond){\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        30: .line 95
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        31: .line 96
            ldc "this(vertx, service, true, timeoutInSecond)"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        32: .line 97
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        33: .line 98
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        34: .line 99
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
        35: .line 100
            new java.lang.StringBuilder
            dup
            ldc "public "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(Vertx vertx, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " service, boolean topLevel, long timeoutInSecond){\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        36: .line 101
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        37: .line 102
            ldc "this(vertx, service, true, timeoutInSecond, false)"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        38: .line 103
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        39: .line 104
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        40: .line 105
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
        41: .line 106
            new java.lang.StringBuilder
            dup
            ldc "public "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(Vertx vertx, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getIfaceSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " service, boolean topLevel, long timeoutSeconds, boolean includeDebugInfo) {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        42: .line 107
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.handlerConstructorBody:(Ljava/io/PrintWriter;)V
        43: .line 108
            aload 6 /* writer */
            ldc "private void checkTimedOut(long id) {\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        44: .line 109
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        45: .line 110
            ldc "long now = System.nanoTime()"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        46: .line 111
            ldc "if (now - lastAccessed > timeoutSeconds * 1000000000) {\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        47: .line 112
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
            pop
        48: .line 113
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getMethods:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        49: .line 114
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.lambda$1(Lio/vertx/codegen/MethodInfo;)Z (6)
                  (Lio/vertx/codegen/MethodInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        50: .line 115
            aload 6 /* writer */
            invokedynamic accept(Lio/vertx/codegen/writer/CodeWriter;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.lambda$2(Lio/vertx/codegen/writer/CodeWriter;Lio/vertx/codegen/MethodInfo;)V (6)
                  (Lio/vertx/codegen/MethodInfo;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        51: .line 119
            aload 6 /* writer */
        52: .line 120
            ldc "close()"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        53: .line 121
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        54: .line 122
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        55: .line 123
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        56: .line 124
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        57: .line 125
            invokevirtual io.vertx.codegen.writer.CodeWriter.newLine:()Lio/vertx/codegen/writer/CodeWriter;
            pop
        58: .line 126
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.handleCloseAccessed:(Ljava/io/PrintWriter;)V
        59: .line 127
            aload 6 /* writer */
            ldc "public void handle(Message<JsonObject> msg) {\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        60: .line 128
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        61: .line 129
            ldc "try{\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        62: .line 130
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        63: .line 131
            ldc "JsonObject json = msg.body()"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        64: .line 132
            ldc "String action = msg.headers().get(\"action\")"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        65: .line 133
            ldc "if (action == null) throw new IllegalStateException(\"action not specified\")"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        66: .line 134
            ldc "accessed()"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        67: .line 135
            ldc "switch (action) {\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        68: .line 136
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
            pop
        69: .line 137
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getMethods:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.lambda$3(Lio/vertx/codegen/MethodInfo;)Z (6)
                  (Lio/vertx/codegen/MethodInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 6 /* writer */
            invokedynamic accept(Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;Lio/vertx/codegen/writer/CodeWriter;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.lambda$4(Lio/vertx/codegen/writer/CodeWriter;Lio/vertx/codegen/MethodInfo;)V (7)
                  (Lio/vertx/codegen/MethodInfo;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        70: .line 138
            aload 6 /* writer */
        71: .line 139
            ldc "default: throw new IllegalStateException(\"Invalid action: \" + action);\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        72: .line 140
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        73: .line 141
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        74: .line 142
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        75: .line 143
            ldc "} catch (Throwable t) {\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        76: .line 144
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
        77: .line 145
            ldc "if (includeDebugInfo) msg.reply(new ServiceException(500, t.getMessage(), HelperUtils.generateDebugInfo(t)))"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        78: .line 146
            ldc "else msg.reply(new ServiceException(500, t.getMessage()))"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        79: .line 147
            ldc "throw t"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        80: .line 148
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        81: .line 149
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
        82: .line 150
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        83: .line 151
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        84: .line 152
            aload 0 /* this */
            aload 1 /* model */
            aload 6 /* writer */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.generateAdditionalMethods:(Lio/vertx/serviceproxy/generator/model/ProxyModel;Lio/vertx/codegen/writer/CodeWriter;)V
        85: .line 153
            aload 6 /* writer */
        86: .line 154
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
        87: .line 155
            ldc "}"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        88: .line 156
            aload 5 /* buffer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 7 // java.lang.String className
        end local 6 // io.vertx.codegen.writer.CodeWriter writer
        end local 5 // java.io.StringWriter buffer
        end local 4 // java.util.Map session
        end local 3 // int size
        end local 2 // int index
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   89     0       this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0   89     1      model  Lio/vertx/serviceproxy/generator/model/ProxyModel;
            0   89     2      index  I
            0   89     3       size  I
            0   89     4    session  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1   89     5     buffer  Ljava/io/StringWriter;
            2   89     6     writer  Lio/vertx/codegen/writer/CodeWriter;
            3   89     7  className  Ljava/lang/String;
    Signature: (Lio/vertx/serviceproxy/generator/model/ProxyModel;IILjava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      model    
      index    
      size     
      session  

  public void generateActionSwitchEntry(io.vertx.serviceproxy.generator.model.ProxyMethodInfo, io.vertx.codegen.writer.CodeWriter);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyMethodInfo;Lio/vertx/codegen/writer/CodeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyMethodInfo m
        start local 2 // io.vertx.codegen.writer.CodeWriter writer
         0: .line 160
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 1
            aload 1 /* m */
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParam:(I)Lio/vertx/codegen/ParamInfo;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.codegen.ParamInfo
         2: astore 3 /* lastParam */
        start local 3 // io.vertx.codegen.ParamInfo lastParam
         3: .line 161
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 3 /* lastParam */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.isResultHandler:(Lio/vertx/codegen/ParamInfo;)Z
            istore 4 /* hasResultHandler */
        start local 4 // boolean hasResultHandler
         4: .line 162
            aload 2 /* writer */
         5: .line 163
            new java.lang.StringBuilder
            dup
            ldc "case \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\": {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
         6: .line 164
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
         7: .line 165
            new java.lang.StringBuilder
            dup
            ldc "service."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
         8: .line 166
            invokevirtual io.vertx.codegen.writer.CodeWriter.indent:()Lio/vertx/codegen/writer/CodeWriter;
            pop
         9: .line 167
            iload 4 /* hasResultHandler */
            ifeq 17
        10: .line 168
            aload 2 /* writer */
        11: .line 170
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParams:()Ljava/util/List;
            iconst_0
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.generateJsonParamExtract(Lio/vertx/codegen/ParamInfo;)Ljava/lang/String; (5)
                  (Lio/vertx/codegen/ParamInfo;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        12: .line 171
            aload 0 /* this */
            aload 3 /* lastParam */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.generateHandler:(Lio/vertx/codegen/ParamInfo;)Ljava/lang/String;
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
        13: .line 169
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
        14: .line 173
            new java.lang.StringBuilder
            dup
            ldc ",\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* writer */
            invokevirtual io.vertx.codegen.writer.CodeWriter.indentation:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 168
            invokevirtual io.vertx.codegen.writer.CodeWriter.writeSeq:(Ljava/util/stream/Stream;Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        16: .line 175
            goto 21
        17: .line 176
      StackMap locals: io.vertx.codegen.ParamInfo int
      StackMap stack:
            aload 2 /* writer */
        18: .line 177
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/serviceproxy/generator/ServiceProxyHandlerGen.generateJsonParamExtract(Lio/vertx/codegen/ParamInfo;)Ljava/lang/String; (5)
                  (Lio/vertx/codegen/ParamInfo;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        19: .line 178
            new java.lang.StringBuilder
            dup
            ldc ",\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* writer */
            invokevirtual io.vertx.codegen.writer.CodeWriter.indentation:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 176
            invokevirtual io.vertx.codegen.writer.CodeWriter.writeSeq:(Ljava/util/stream/Stream;Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        21: .line 181
      StackMap locals:
      StackMap stack:
            aload 2 /* writer */
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
            pop
        22: .line 182
            aload 2 /* writer */
            ldc ");\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.write:(Ljava/lang/String;)V
        23: .line 183
            aload 1 /* m */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.isProxyClose:()Z
            ifeq 24
            aload 2 /* writer */
            ldc "close()"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        24: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* writer */
            ldc "break"
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        25: .line 185
            aload 2 /* writer */
            invokevirtual io.vertx.codegen.writer.CodeWriter.unindent:()Lio/vertx/codegen/writer/CodeWriter;
            pop
        26: .line 186
            aload 2 /* writer */
            ldc "}\n"
            invokevirtual io.vertx.codegen.writer.CodeWriter.code:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
        27: .line 187
            return
        end local 4 // boolean hasResultHandler
        end local 3 // io.vertx.codegen.ParamInfo lastParam
        end local 2 // io.vertx.codegen.writer.CodeWriter writer
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyMethodInfo m
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   28     0              this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0   28     1                 m  Lio/vertx/serviceproxy/generator/model/ProxyMethodInfo;
            0   28     2            writer  Lio/vertx/codegen/writer/CodeWriter;
            3   28     3         lastParam  Lio/vertx/codegen/ParamInfo;
            4   28     4  hasResultHandler  Z
    MethodParameters:
        Name  Flags
      m       
      writer  

  public java.lang.String generateJsonParamExtract(io.vertx.codegen.ParamInfo);
    descriptor: (Lio/vertx/codegen/ParamInfo;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.codegen.ParamInfo param
         0: .line 190
            aload 1 /* param */
            invokevirtual io.vertx.codegen.ParamInfo.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 191
            aload 1 /* param */
            invokevirtual io.vertx.codegen.ParamInfo.getType:()Lio/vertx/codegen/type/TypeInfo;
            astore 3 /* type */
        start local 3 // io.vertx.codegen.type.TypeInfo type
         2: .line 192
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            astore 4 /* typeName */
        start local 4 // java.lang.String typeName
         3: .line 193
            aload 4 /* typeName */
            ldc "char"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* typeName */
            ldc "java.lang.Character"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 194
      StackMap locals: java.lang.String io.vertx.codegen.type.TypeInfo java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "json.getInteger(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\") == null ? null : (char)(int)(json.getInteger(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\"))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 195
      StackMap locals:
      StackMap stack:
            aload 4 /* typeName */
            ldc "byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* typeName */
            ldc "java.lang.Byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         6: .line 196
            aload 4 /* typeName */
            ldc "short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* typeName */
            ldc "java.lang.Short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         7: .line 197
            aload 4 /* typeName */
            ldc "int"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* typeName */
            ldc "java.lang.Integer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 198
            aload 4 /* typeName */
            ldc "long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* typeName */
            ldc "java.lang.Long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 199
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "json.getValue(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\") == null ? null : (json.getLong(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            aload 4 /* typeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Value())"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        10: .line 200
      StackMap locals:
      StackMap stack:
            aload 4 /* typeName */
            ldc "float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 4 /* typeName */
            ldc "java.lang.Float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 201
            aload 4 /* typeName */
            ldc "double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 4 /* typeName */
            ldc "java.lang.Double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 202
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "json.getValue(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\") == null ? null : (json.getDouble(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            aload 4 /* typeName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Value())"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 203
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 15
        14: .line 204
            new java.lang.StringBuilder
            dup
            ldc "json.getString(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\") == null ? null : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* param */
            invokevirtual io.vertx.codegen.ParamInfo.getType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".valueOf(json.getString(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\"))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        15: .line 205
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 16
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.SET:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 31
        16: .line 206
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 17
            ldc "List"
            goto 18
      StackMap locals:
      StackMap stack:
        17: ldc "Set"
      StackMap locals:
      StackMap stack: java.lang.String
        18: astore 5 /* coll */
        start local 5 // java.lang.String coll
        19: .line 207
            aload 3 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_0
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 6 /* typeArg */
        start local 6 // io.vertx.codegen.type.TypeInfo typeArg
        20: .line 208
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 27
        21: .line 209
            aload 6 /* typeArg */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            astore 7 /* doType */
        start local 7 // io.vertx.codegen.type.ClassTypeInfo doType
        22: .line 211
            ldc "json.getJsonArray(\"%s\").stream().map(v -> %s).collect(Collectors.to%s())"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 212
            aload 2 /* name */
            aastore
            dup
            iconst_1
        24: .line 213
            ldc "v"
            aload 7 /* doType */
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateDeserializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        25: .line 214
            aload 5 /* coll */
            aastore
        26: .line 210
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 7 // io.vertx.codegen.type.ClassTypeInfo doType
        27: .line 217
      StackMap locals: java.lang.String io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
        28: .line 218
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Integer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        29: .line 219
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "json.getJsonArray(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\").stream().map(o -> ((Number)o)."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            aload 6 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Value()).collect(Collectors.to"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* coll */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "())"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        30: .line 220
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "HelperUtils.convert"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* coll */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(json.getJsonArray(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\").getList())"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 6 // io.vertx.codegen.type.TypeInfo typeArg
        end local 5 // java.lang.String coll
        31: .line 222
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 44
        32: .line 223
            aload 3 /* type */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_1
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 5 /* typeArg */
        start local 5 // io.vertx.codegen.type.TypeInfo typeArg
        33: .line 224
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
        34: .line 225
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Integer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
        35: .line 226
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        36: .line 227
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "json.getJsonObject(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\").getMap().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> ((java.lang.Number)entry.getValue())."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.numericMapping:Ljava/util/Map;
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Value()))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        37: .line 228
      StackMap locals:
      StackMap stack:
            aload 5 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 43
        38: .line 229
            aload 5 /* typeArg */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            astore 6 /* doType */
        start local 6 // io.vertx.codegen.type.ClassTypeInfo doType
        39: .line 231
            ldc "json.getJsonObject(\"%s\").stream().collect(Collectors.toMap(Map.Entry::getKey, e -> %s))"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        40: .line 232
            aload 2 /* name */
            aastore
            dup
            iconst_1
        41: .line 233
            ldc "e.getValue()"
            aload 6 /* doType */
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateDeserializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            aastore
        42: .line 230
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 6 // io.vertx.codegen.type.ClassTypeInfo doType
        43: .line 236
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "HelperUtils.convertMap(json.getJsonObject(\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\").getMap())"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // io.vertx.codegen.type.TypeInfo typeArg
        44: .line 238
      StackMap locals:
      StackMap stack:
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 48
        45: .line 239
            aload 3 /* type */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            astore 5 /* doType */
        start local 5 // io.vertx.codegen.type.ClassTypeInfo doType
        46: .line 240
            new java.lang.StringBuilder
            dup
            ldc "json."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 5 /* doType */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.resolveDataObjectJsonExtractorMethod:(Lio/vertx/codegen/type/DataObjectInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* valueExtractionStmt */
        start local 6 // java.lang.String valueExtractionStmt
        47: .line 241
            aload 6 /* valueExtractionStmt */
            aload 5 /* doType */
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateDeserializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            areturn
        end local 6 // java.lang.String valueExtractionStmt
        end local 5 // io.vertx.codegen.type.ClassTypeInfo doType
        48: .line 243
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")json.getValue(\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.String typeName
        end local 3 // io.vertx.codegen.type.TypeInfo type
        end local 2 // java.lang.String name
        end local 1 // io.vertx.codegen.ParamInfo param
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   49     0                 this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0   49     1                param  Lio/vertx/codegen/ParamInfo;
            1   49     2                 name  Ljava/lang/String;
            2   49     3                 type  Lio/vertx/codegen/type/TypeInfo;
            3   49     4             typeName  Ljava/lang/String;
           19   31     5                 coll  Ljava/lang/String;
           20   31     6              typeArg  Lio/vertx/codegen/type/TypeInfo;
           22   27     7               doType  Lio/vertx/codegen/type/ClassTypeInfo;
           33   44     5              typeArg  Lio/vertx/codegen/type/TypeInfo;
           39   43     6               doType  Lio/vertx/codegen/type/ClassTypeInfo;
           46   48     5               doType  Lio/vertx/codegen/type/ClassTypeInfo;
           47   48     6  valueExtractionStmt  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      param  

  private java.lang.String resolveDataObjectJsonExtractorMethod(io.vertx.codegen.type.DataObjectInfo);
    descriptor: (Lio/vertx/codegen/type/DataObjectInfo;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.codegen.type.DataObjectInfo info
         0: .line 247
            invokestatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:()[I
            aload 1 /* info */
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iaload
            tableswitch { // 5 - 6
                    5: 2
                    6: 1
              default: 3
          }
         1: .line 249
      StackMap locals:
      StackMap stack:
            ldc "getJsonArray"
            areturn
         2: .line 251
      StackMap locals:
      StackMap stack:
            ldc "getJsonObject"
            areturn
         3: .line 253
      StackMap locals:
      StackMap stack:
            ldc "getValue"
            areturn
        end local 1 // io.vertx.codegen.type.DataObjectInfo info
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    4     1  info  Lio/vertx/codegen/type/DataObjectInfo;
    MethodParameters:
      Name  Flags
      info  

  public java.lang.String generateHandler(io.vertx.codegen.ParamInfo);
    descriptor: (Lio/vertx/codegen/ParamInfo;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.codegen.ParamInfo param
         0: .line 257
            aload 1 /* param */
            invokevirtual io.vertx.codegen.ParamInfo.getType:()Lio/vertx/codegen/type/TypeInfo;
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_0
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_0
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 2 /* typeArg */
        start local 2 // io.vertx.codegen.type.TypeInfo typeArg
         1: .line 258
            aload 0 /* this */
            aload 2 /* typeArg */
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.generateHandler:(Lio/vertx/codegen/type/TypeInfo;)Ljava/lang/String;
            areturn
        end local 2 // io.vertx.codegen.type.TypeInfo typeArg
        end local 1 // io.vertx.codegen.ParamInfo param
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    2     1    param  Lio/vertx/codegen/ParamInfo;
            1    2     2  typeArg  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
       Name  Flags
      param  

  public java.lang.String generateHandler(io.vertx.codegen.type.TypeInfo);
    descriptor: (Lio/vertx/codegen/type/TypeInfo;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.codegen.type.TypeInfo typeArg
         0: .line 261
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            if_acmpeq 1
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.SET:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 14
         1: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 2
            ldc "List"
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc "Set"
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 2 /* coll */
        start local 2 // java.lang.String coll
         4: .line 263
            aload 1 /* typeArg */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_0
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 3 /* innerTypeArg */
        start local 3 // io.vertx.codegen.type.TypeInfo innerTypeArg
         5: .line 264
            aload 3 /* innerTypeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Character"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 265
            new java.lang.StringBuilder
            dup
            ldc "HelperUtils.create"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* coll */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "CharHandler(msg, includeDebugInfo)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 266
      StackMap locals: java.lang.String io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 3 /* innerTypeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 13
         8: .line 267
            new java.lang.StringBuilder
            dup
            ldc "res -> {\n            if (res.failed()) {\n              HelperUtils.manageFailure(msg, res.cause(), includeDebugInfo);\n            } else {\n              msg.reply(new JsonArray(res.result().stream().map(v -> "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 271
            ldc "v"
            aload 3 /* innerTypeArg */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateSerializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ").collect(Collectors.toList())));\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 272
            ldc "            }\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 273
            ldc "         }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 267
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        13: .line 274
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "HelperUtils.create"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* coll */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "Handler(msg, includeDebugInfo)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // io.vertx.codegen.type.TypeInfo innerTypeArg
        end local 2 // java.lang.String coll
        14: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 25
        15: .line 277
            aload 1 /* typeArg */
            checkcast io.vertx.codegen.type.ParameterizedTypeInfo
            iconst_1
            invokevirtual io.vertx.codegen.type.ParameterizedTypeInfo.getArg:(I)Lio/vertx/codegen/type/TypeInfo;
            astore 2 /* innerTypeArg */
        start local 2 // io.vertx.codegen.type.TypeInfo innerTypeArg
        16: .line 278
            aload 2 /* innerTypeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getName:()Ljava/lang/String;
            ldc "java.lang.Character"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 279
            ldc "HelperUtils.createMapCharHandler(msg, includeDebugInfo)"
            areturn
        18: .line 280
      StackMap locals: io.vertx.codegen.type.TypeInfo
      StackMap stack:
            aload 2 /* innerTypeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 24
        19: .line 281
            new java.lang.StringBuilder
            dup
            ldc "res -> {\n            if (res.failed()) {\n              if (res.cause() instanceof ServiceException) {\n                msg.reply(res.cause());\n              } else {\n                msg.reply(new ServiceException(-1, res.cause().getMessage()));\n              }\n            } else {\n              msg.reply(new JsonObject(res.result().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 289
            ldc "e.getValue()"
            aload 2 /* innerTypeArg */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateSerializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "))));\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 290
            ldc "            }\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 291
            ldc "         }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 281
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        24: .line 292
      StackMap locals:
      StackMap stack:
            ldc "HelperUtils.createMapHandler(msg, includeDebugInfo)"
            areturn
        end local 2 // io.vertx.codegen.type.TypeInfo innerTypeArg
        25: .line 294
      StackMap locals:
      StackMap stack:
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.isDataObjectHolder:()Z
            ifeq 31
        26: .line 295
            new java.lang.StringBuilder
            dup
            ldc "res -> {\n            if (res.failed()) {\n              HelperUtils.manageFailure(msg, res.cause(), includeDebugInfo);\n            } else {\n              msg.reply("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 299
            ldc "res.result()"
            aload 1 /* typeArg */
            checkcast io.vertx.codegen.type.ClassTypeInfo
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.generateSerializeDataObject:(Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ");\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 300
            ldc "            }\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 301
            ldc "         }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        30: .line 295
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        31: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 38
            aload 1 /* typeArg */
            checkcast io.vertx.codegen.type.ApiTypeInfo
            invokevirtual io.vertx.codegen.type.ApiTypeInfo.isProxyGen:()Z
            ifeq 38
        32: .line 303
            new java.lang.StringBuilder
            dup
            ldc "res -> {\n            if (res.failed()) {\n              HelperUtils.manageFailure(msg, res.cause(), includeDebugInfo);\n            } else {\n              String proxyAddress = UUID.randomUUID().toString();\n              new ServiceBinder(vertx).setAddress(proxyAddress).setTopLevel(false).setTimeoutSeconds(timeoutSeconds).register("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 308
            aload 1 /* typeArg */
            invokevirtual io.vertx.codegen.type.TypeInfo.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class, res.result());\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 309
            ldc "              msg.reply(null, new DeliveryOptions().addHeader(\"proxyaddr\", proxyAddress));\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 310
            ldc "            }\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 311
            ldc "          }"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 303
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        38: .line 312
      StackMap locals:
      StackMap stack:
            ldc "HelperUtils.createHandler(msg, includeDebugInfo)"
            areturn
        end local 1 // io.vertx.codegen.type.TypeInfo typeArg
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   39     0          this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0   39     1       typeArg  Lio/vertx/codegen/type/TypeInfo;
            4   14     2          coll  Ljava/lang/String;
            5   14     3  innerTypeArg  Lio/vertx/codegen/type/TypeInfo;
           16   25     2  innerTypeArg  Lio/vertx/codegen/type/TypeInfo;
    MethodParameters:
         Name  Flags
      typeArg  

  public void generateAdditionalMethods(io.vertx.serviceproxy.generator.model.ProxyModel, io.vertx.codegen.writer.CodeWriter);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyModel;Lio/vertx/codegen/writer/CodeWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        start local 2 // io.vertx.codegen.writer.CodeWriter writer
         0: .line 315
            return
        end local 2 // io.vertx.codegen.writer.CodeWriter writer
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    1     1   model  Lio/vertx/serviceproxy/generator/model/ProxyModel;
            0    1     2  writer  Lio/vertx/codegen/writer/CodeWriter;
    MethodParameters:
        Name  Flags
      model   
      writer  

  public java.lang.String render(io.vertx.codegen.Model, int, int, java.util.Map);
    descriptor: (Lio/vertx/codegen/Model;IILjava/util/Map;)Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.serviceproxy.generator.model.ProxyModel
            iload 2
            iload 3
            aload 4
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.render:(Lio/vertx/serviceproxy/generator/model/ProxyModel;IILjava/util/Map;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String filename(io.vertx.codegen.Model);
    descriptor: (Lio/vertx/codegen/Model;)Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.serviceproxy.generator.model.ProxyModel
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.filename:(Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$io$vertx$codegen$type$ClassKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 20
            getstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.codegen.type.ClassKind.values:()[Lio/vertx/codegen/type/ClassKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.codegen.type.ClassKind.API:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 13
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.codegen.type.ClassKind.ASYNC_RESULT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 16
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.codegen.type.ClassKind.BOXED_PRIMITIVE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.vertx.codegen.type.ClassKind.CLASS_TYPE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 17
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.vertx.codegen.type.ClassKind.ENUM:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.vertx.codegen.type.ClassKind.FUNCTION:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 15
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic io.vertx.codegen.type.ClassKind.FUTURE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 18
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 14
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic io.vertx.codegen.type.ClassKind.JSON_ARRAY:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 6
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic io.vertx.codegen.type.ClassKind.JSON_OBJECT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_5
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic io.vertx.codegen.type.ClassKind.LIST:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 10
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic io.vertx.codegen.type.ClassKind.MAP:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 12
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic io.vertx.codegen.type.ClassKind.OBJECT:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 9
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic io.vertx.codegen.type.ClassKind.OTHER:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 19
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic io.vertx.codegen.type.ClassKind.PRIMITIVE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_3
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic io.vertx.codegen.type.ClassKind.SET:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 11
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic io.vertx.codegen.type.ClassKind.STRING:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            iconst_1
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic io.vertx.codegen.type.ClassKind.THROWABLE:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 7
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic io.vertx.codegen.type.ClassKind.VOID:Lio/vertx/codegen/type/ClassKind;
            invokevirtual io.vertx.codegen.type.ClassKind.ordinal:()I
            bipush 8
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            dup
            putstatic io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.$SWITCH_TABLE$io$vertx$codegen$type$ClassKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError

  private void lambda$0(io.vertx.codegen.writer.CodeWriter, java.lang.String);
    descriptor: (Lio/vertx/codegen/writer/CodeWriter;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 2 // java.lang.String i
         0: .line 73
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.utils:Lio/vertx/serviceproxy/generator/GeneratorUtils;
            aload 1
            aload 2 /* i */
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.writeImport:(Ljava/io/PrintWriter;Ljava/lang/String;)V
            return
        end local 2 // java.lang.String i
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    1     2     i  Ljava/lang/String;

  private static boolean lambda$1(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.MethodInfo m
         0: .line 114
            aload 0 /* m */
            checkcast io.vertx.serviceproxy.generator.model.ProxyMethodInfo
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyMethodInfo.isProxyClose:()Z
            ireturn
        end local 0 // io.vertx.codegen.MethodInfo m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Lio/vertx/codegen/MethodInfo;

  private static void lambda$2(io.vertx.codegen.writer.CodeWriter, io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/writer/CodeWriter;Lio/vertx/codegen/MethodInfo;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 1 // io.vertx.codegen.MethodInfo m
         0: .line 116
            aload 1 /* m */
            invokevirtual io.vertx.codegen.MethodInfo.getParams:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 1
            aload 0
            new java.lang.StringBuilder
            dup
            ldc "service."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
            goto 2
         1: .line 117
      StackMap locals:
      StackMap stack:
            aload 0
            new java.lang.StringBuilder
            dup
            ldc "service."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m */
            invokevirtual io.vertx.codegen.MethodInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(done -> {})"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.codegen.writer.CodeWriter.stmt:(Ljava/lang/String;)Lio/vertx/codegen/writer/CodeWriter;
            pop
         2: .line 118
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.codegen.MethodInfo m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     m  Lio/vertx/codegen/MethodInfo;

  private static boolean lambda$3(io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/MethodInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.MethodInfo m
         0: .line 137
            aload 0 /* m */
            invokevirtual io.vertx.codegen.MethodInfo.isStaticMethod:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.MethodInfo m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     m  Lio/vertx/codegen/MethodInfo;

  private void lambda$4(io.vertx.codegen.writer.CodeWriter, io.vertx.codegen.MethodInfo);
    descriptor: (Lio/vertx/codegen/writer/CodeWriter;Lio/vertx/codegen/MethodInfo;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
        start local 2 // io.vertx.codegen.MethodInfo m
         0: .line 137
            aload 0 /* this */
            aload 2 /* m */
            checkcast io.vertx.serviceproxy.generator.model.ProxyMethodInfo
            aload 1
            invokevirtual io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.generateActionSwitchEntry:(Lio/vertx/serviceproxy/generator/model/ProxyMethodInfo;Lio/vertx/codegen/writer/CodeWriter;)V
            return
        end local 2 // io.vertx.codegen.MethodInfo m
        end local 0 // io.vertx.serviceproxy.generator.ServiceProxyHandlerGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/ServiceProxyHandlerGen;
            0    1     2     m  Lio/vertx/codegen/MethodInfo;
}
Signature: Lio/vertx/codegen/Generator<Lio/vertx/serviceproxy/generator/model/ProxyModel;>;
SourceFile: "ServiceProxyHandlerGen.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles