public class io.vertx.serviceproxy.generator.GeneratorUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.serviceproxy.generator.GeneratorUtils
  super_class: java.lang.Object
{
  final java.lang.String classHeader;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.lang.String proxyGenImports;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.lang.String handlerGenImports;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.lang.String roger;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.lang.String handlerConstructorBody;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final java.lang.String handlerCloseAccessed;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 29
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "class_header"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.classHeader:Ljava/lang/String;
         2: .line 30
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "proxy_gen_import"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.proxyGenImports:Ljava/lang/String;
         3: .line 31
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "handler_gen_import"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerGenImports:Ljava/lang/String;
         4: .line 32
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "handler_constructor_body"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerConstructorBody:Ljava/lang/String;
         5: .line 33
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "handler_close_accessed"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerCloseAccessed:Ljava/lang/String;
         6: .line 34
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            ldc "roger"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.serviceproxy.generator.GeneratorUtils.roger:Ljava/lang/String;
         7: .line 35
            return
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;

  public java.util.stream.Stream<java.lang.String> additionalImports(io.vertx.serviceproxy.generator.model.ProxyModel);
    descriptor: (Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
         0: .line 40
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getImportedTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 41
            aload 1 /* model */
            invokevirtual io.vertx.serviceproxy.generator.model.ProxyModel.getReferencedDataObjectTypes:()Ljava/util/Set;
         2: .line 42
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 43
            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/GeneratorUtils.lambda$0(Lio/vertx/codegen/type/ClassTypeInfo;)Z (6)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 44
            invokedynamic apply()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/GeneratorUtils.lambda$1(Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo; (6)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 39
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
         6: .line 46
            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/GeneratorUtils.lambda$2(Lio/vertx/codegen/type/ClassTypeInfo;)Z (6)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         7: .line 47
            invokedynamic apply()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/codegen/type/TypeInfo.toString()Ljava/lang/String; (5)
                  (Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         8: .line 48
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
         9: .line 38
            areturn
        end local 1 // io.vertx.serviceproxy.generator.model.ProxyModel model
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0   10     1  model  Lio/vertx/serviceproxy/generator/model/ProxyModel;
    Signature: (Lio/vertx/serviceproxy/generator/model/ProxyModel;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
       Name  Flags
      model  

  public void classHeader(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 52
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.classHeader:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         1: .line 53
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    2     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void proxyGenImports(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 56
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.proxyGenImports:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         1: .line 57
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    2     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void handlerGenImports(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 59
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerGenImports:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    1     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void roger(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 61
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.roger:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    1     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void handlerConstructorBody(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 63
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerConstructorBody:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    1     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void handleCloseAccessed(java.io.PrintWriter);
    descriptor: (Ljava/io/PrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
         0: .line 65
            aload 1 /* w */
            aload 0 /* this */
            getfield io.vertx.serviceproxy.generator.GeneratorUtils.handlerCloseAccessed:Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
            return
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    1     1     w  Ljava/io/PrintWriter;
    MethodParameters:
      Name  Flags
      w     

  public void writeImport(java.io.PrintWriter, java.lang.String);
    descriptor: (Ljava/io/PrintWriter;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.io.PrintWriter w
        start local 2 // java.lang.String i
         0: .line 68
            aload 1 /* w */
            new java.lang.StringBuilder
            dup
            ldc "import "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* i */
            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 java.io.PrintWriter.print:(Ljava/lang/String;)V
         1: .line 69
            return
        end local 2 // java.lang.String i
        end local 1 // java.io.PrintWriter w
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    2     1     w  Ljava/io/PrintWriter;
            0    2     2     i  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      w     
      i     

  public java.lang.String loadResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.lang.String resource
         0: .line 72
            aload 0 /* this */
            aload 1 /* resource */
            ldc "vertx-service-proxy"
            invokevirtual io.vertx.serviceproxy.generator.GeneratorUtils.loadResource:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String resource
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    1     1  resource  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      resource  

  public java.lang.String loadResource(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // java.lang.String resource
        start local 2 // java.lang.String moduleName
         0: .line 76
            ldc Lio/vertx/serviceproxy/generator/GeneratorUtils;
            new java.lang.StringBuilder
            dup
            ldc "/META-INF/vertx/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* resource */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".txt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* input */
        start local 3 // java.io.InputStream input
         1: .line 77
            aconst_null
            astore 4
            aconst_null
            astore 5
         2: new java.util.Scanner
            dup
            aload 3 /* input */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokespecial java.util.Scanner.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            astore 6 /* scanner */
        start local 6 // java.util.Scanner scanner
         3: .line 78
            aload 6 /* scanner */
            ldc "\\A"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            invokevirtual java.util.Scanner.next:()Ljava/lang/String;
         4: .line 79
            aload 6 /* scanner */
            ifnull 5
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.close:()V
         5: .line 78
      StackMap locals: io.vertx.serviceproxy.generator.GeneratorUtils java.lang.String java.lang.String java.io.InputStream java.lang.Throwable java.lang.Throwable java.util.Scanner
      StackMap stack: java.lang.String
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 4
         7: .line 79
            aload 6 /* scanner */
            ifnull 8
            aload 6 /* scanner */
            invokevirtual java.util.Scanner.close:()V
        end local 6 // java.util.Scanner scanner
      StackMap locals:
      StackMap stack:
         8: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 5
            aload 4
            ifnonnull 10
            aload 5
            astore 4
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 4
            aload 5
            if_acmpeq 11
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 4
            athrow
        end local 3 // java.io.InputStream input
        end local 2 // java.lang.String moduleName
        end local 1 // java.lang.String resource
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0   12     1    resource  Ljava/lang/String;
            0   12     2  moduleName  Ljava/lang/String;
            1   12     3       input  Ljava/io/InputStream;
            3    8     6     scanner  Ljava/util/Scanner;
      Exception table:
        from    to  target  type
           3     4       6  any
           2     5       9  any
           6     9       9  any
    MethodParameters:
            Name  Flags
      resource    
      moduleName  

  public boolean isResultHandler(io.vertx.codegen.ParamInfo);
    descriptor: (Lio/vertx/codegen/ParamInfo;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
        start local 1 // io.vertx.codegen.ParamInfo param
         0: .line 83
            aload 1 /* param */
            ifnull 4
         1: .line 84
            aload 1 /* param */
            invokevirtual io.vertx.codegen.ParamInfo.getType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.HANDLER:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 4
         2: .line 85
            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;
            invokevirtual io.vertx.codegen.type.TypeInfo.getKind:()Lio/vertx/codegen/type/ClassKind;
            getstatic io.vertx.codegen.type.ClassKind.ASYNC_RESULT:Lio/vertx/codegen/type/ClassKind;
            if_acmpne 4
         3: .line 83
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // io.vertx.codegen.ParamInfo param
        end local 0 // io.vertx.serviceproxy.generator.GeneratorUtils this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lio/vertx/serviceproxy/generator/GeneratorUtils;
            0    5     1  param  Lio/vertx/codegen/ParamInfo;
    MethodParameters:
       Name  Flags
      param  

  public static java.lang.String generateDeserializeDataObject(java.lang.String, io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.String stmt
        start local 1 // io.vertx.codegen.type.ClassTypeInfo doTypeInfo
         0: .line 89
            aload 1 /* doTypeInfo */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getDeserializer:()Lio/vertx/codegen/type/MapperInfo;
            astore 2 /* deserializer */
        start local 2 // io.vertx.codegen.type.MapperInfo deserializer
         1: .line 91
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.$SWITCH_TABLE$io$vertx$codegen$MapperKind:()[I
            aload 2 /* deserializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getKind:()Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.MapperKind.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 2
                    2: 4
              default: 9
          }
         2: .line 93
      StackMap locals: io.vertx.codegen.type.MapperInfo
      StackMap stack:
            ldc "new %s((%s)%s)"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* doTypeInfo */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* doTypeInfo */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* stmt */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         3: .line 94
            goto 10
        end local 3 // java.lang.String s
         4: .line 96
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* deserializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getQualifiedName:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         5: .line 97
            aload 2 /* deserializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getSelectors:()Ljava/util/List;
            aload 4 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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/GeneratorUtils.lambda$4(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         6: .line 100
            aload 4 /* sb */
            ldc "(("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* deserializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            invokevirtual io.vertx.codegen.type.TypeInfo.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* stmt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 101
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* s */
        start local 3 // java.lang.String s
         8: .line 102
            goto 10
        end local 4 // java.lang.StringBuilder sb
        end local 3 // java.lang.String s
         9: .line 104
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        start local 3 // java.lang.String s
        10: .line 106
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "%s != null ? %s : null"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* stmt */
            aastore
            dup
            iconst_1
            aload 3 /* s */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 3 // java.lang.String s
        end local 2 // io.vertx.codegen.type.MapperInfo deserializer
        end local 1 // io.vertx.codegen.type.ClassTypeInfo doTypeInfo
        end local 0 // java.lang.String stmt
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          stmt  Ljava/lang/String;
            0   11     1    doTypeInfo  Lio/vertx/codegen/type/ClassTypeInfo;
            1   11     2  deserializer  Lio/vertx/codegen/type/MapperInfo;
            3    4     3             s  Ljava/lang/String;
            8    9     3             s  Ljava/lang/String;
           10   11     3             s  Ljava/lang/String;
            5    9     4            sb  Ljava/lang/StringBuilder;
    MethodParameters:
            Name  Flags
      stmt        
      doTypeInfo  

  public static java.lang.String generateSerializeDataObject(java.lang.String, io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Ljava/lang/String;Lio/vertx/codegen/type/ClassTypeInfo;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.String stmt
        start local 1 // io.vertx.codegen.type.ClassTypeInfo doTypeInfo
         0: .line 110
            aload 1 /* doTypeInfo */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getSerializer:()Lio/vertx/codegen/type/MapperInfo;
            astore 2 /* serializer */
        start local 2 // io.vertx.codegen.type.MapperInfo serializer
         1: .line 111
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         2: .line 112
            aload 2 /* serializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getSelectors:()Ljava/util/List;
            aload 3 /* sb */
            invokedynamic accept(Ljava/lang/StringBuilder;)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/GeneratorUtils.lambda$5(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
                  (Ljava/lang/String;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         3: .line 116
            invokestatic io.vertx.serviceproxy.generator.GeneratorUtils.$SWITCH_TABLE$io$vertx$codegen$MapperKind:()[I
            aload 2 /* serializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getKind:()Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.MapperKind.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 4
                    2: 6
              default: 8
          }
         4: .line 118
      StackMap locals: io.vertx.codegen.type.MapperInfo java.lang.StringBuilder
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* stmt */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "()"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
         5: .line 119
            goto 9
        end local 4 // java.lang.String s
         6: .line 121
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* serializer */
            invokevirtual io.vertx.codegen.type.MapperInfo.getQualifiedName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* stmt */
            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 4 /* s */
        start local 4 // java.lang.String s
         7: .line 122
            goto 9
        end local 4 // java.lang.String s
         8: .line 124
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        start local 4 // java.lang.String s
         9: .line 126
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "%s != null ? %s : null"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* stmt */
            aastore
            dup
            iconst_1
            aload 4 /* s */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String s
        end local 3 // java.lang.StringBuilder sb
        end local 2 // io.vertx.codegen.type.MapperInfo serializer
        end local 1 // io.vertx.codegen.type.ClassTypeInfo doTypeInfo
        end local 0 // java.lang.String stmt
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        stmt  Ljava/lang/String;
            0   10     1  doTypeInfo  Lio/vertx/codegen/type/ClassTypeInfo;
            1   10     2  serializer  Lio/vertx/codegen/type/MapperInfo;
            2   10     3          sb  Ljava/lang/StringBuilder;
            5    6     4           s  Ljava/lang/String;
            7    8     4           s  Ljava/lang/String;
            9   10     4           s  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      stmt        
      doTypeInfo  

  static int[] $SWITCH_TABLE$io$vertx$codegen$MapperKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 19
            getstatic io.vertx.serviceproxy.generator.GeneratorUtils.$SWITCH_TABLE$io$vertx$codegen$MapperKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.codegen.MapperKind.values:()[Lio/vertx/codegen/MapperKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.codegen.MapperKind.SELF:Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.MapperKind.ordinal:()I
            iconst_1
            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.MapperKind.STATIC_METHOD:Lio/vertx/codegen/MapperKind;
            invokevirtual io.vertx.codegen.MapperKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            dup
            putstatic io.vertx.serviceproxy.generator.GeneratorUtils.$SWITCH_TABLE$io$vertx$codegen$MapperKind:[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

  private static boolean lambda$0(io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Lio/vertx/codegen/type/ClassTypeInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.ClassTypeInfo t
         0: .line 43
            aload 0 /* t */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.isDataObjectHolder:()Z
            ifeq 1
            aload 0 /* t */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            instanceof io.vertx.codegen.type.ClassTypeInfo
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.type.ClassTypeInfo t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     t  Lio/vertx/codegen/type/ClassTypeInfo;

  private static io.vertx.codegen.type.ClassTypeInfo lambda$1(io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Lio/vertx/codegen/type/ClassTypeInfo;)Lio/vertx/codegen/type/ClassTypeInfo;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.ClassTypeInfo t
         0: .line 44
            aload 0 /* t */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getDataObject:()Lio/vertx/codegen/type/DataObjectInfo;
            invokevirtual io.vertx.codegen.type.DataObjectInfo.getJsonType:()Lio/vertx/codegen/type/TypeInfo;
            checkcast io.vertx.codegen.type.ClassTypeInfo
            areturn
        end local 0 // io.vertx.codegen.type.ClassTypeInfo t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Lio/vertx/codegen/type/ClassTypeInfo;

  private static boolean lambda$2(io.vertx.codegen.type.ClassTypeInfo);
    descriptor: (Lio/vertx/codegen/type/ClassTypeInfo;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.type.ClassTypeInfo c
         0: .line 46
            aload 0 /* c */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getPackageName:()Ljava/lang/String;
            ldc "java.lang"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* c */
            invokevirtual io.vertx.codegen.type.ClassTypeInfo.getPackageName:()Ljava/lang/String;
            ldc "io.vertx.core.json"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.vertx.codegen.type.ClassTypeInfo c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  Lio/vertx/codegen/type/ClassTypeInfo;

  private static void lambda$4(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String selector
         0: .line 98
            aload 0
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* selector */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 99
            return
        end local 1 // java.lang.String selector
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     1  selector  Ljava/lang/String;

  private static void lambda$5(java.lang.StringBuilder, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String selector
         0: .line 113
            aload 0
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* selector */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 114
            return
        end local 1 // java.lang.String selector
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     1  selector  Ljava/lang/String;
}
SourceFile: "GeneratorUtils.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles