public class io.vertx.codegen.CodeGen
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codegen.CodeGen
  super_class: java.lang.Object
{
  private static final java.util.List<io.vertx.codegen.ModelProvider> PROVIDERS;
    descriptor: Ljava/util/List;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/List<Lio/vertx/codegen/ModelProvider;>;

  private static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.Map<javax.annotation.processing.ProcessingEnvironment, java.lang.ClassLoader> loaderMap;
    descriptor: Ljava/util/Map;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljavax/annotation/processing/ProcessingEnvironment;Ljava/lang/ClassLoader;>;

  private final java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.util.Map$Entry<javax.lang.model.element.TypeElement, io.vertx.codegen.Model>>> models;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/util/Map$Entry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;>;>;

  private final java.util.Set<javax.lang.model.element.TypeElement> all;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/lang/model/element/TypeElement;>;

  private final java.util.HashMap<java.lang.String, javax.lang.model.element.PackageElement> modules;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljavax/lang/model/element/PackageElement;>;

  private final javax.lang.model.util.Elements elementUtils;
    descriptor: Ljavax/lang/model/util/Elements;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.lang.model.util.Types typeUtils;
    descriptor: Ljavax/lang/model/util/Types;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=0
         0: .line 30
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* list */
        start local 0 // java.util.List list
         1: .line 31
            aload 0 /* list */
            getstatic io.vertx.codegen.ModelProvider.CLASS:Lio/vertx/codegen/ModelProvider;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 32
            aload 0 /* list */
            getstatic io.vertx.codegen.ModelProvider.DATA_OBJECT:Lio/vertx/codegen/ModelProvider;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 33
            aload 0 /* list */
            getstatic io.vertx.codegen.ModelProvider.ENUM:Lio/vertx/codegen/ModelProvider;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 35
            ldc Lio/vertx/codegen/ModelProvider;
            ldc Lio/vertx/codegen/ModelProvider;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
            astore 1 /* loader */
        start local 1 // java.util.ServiceLoader loader
         5: .line 36
            aload 1 /* loader */
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: java.util.List java.util.ServiceLoader top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.codegen.ModelProvider
            astore 2 /* aLoader */
        start local 2 // io.vertx.codegen.ModelProvider aLoader
         7: .line 37
            aload 0 /* list */
            aload 2 /* aLoader */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // io.vertx.codegen.ModelProvider aLoader
         8: .line 36
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 1 // java.util.ServiceLoader loader
         9: .line 39
            goto 12
      StackMap locals: java.util.List
      StackMap stack: java.lang.Exception
        10: astore 1 /* e */
        start local 1 // java.lang.Exception e
        11: .line 40
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 1 // java.lang.Exception e
        12: .line 42
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            putstatic io.vertx.codegen.CodeGen.PROVIDERS:Ljava/util/List;
        end local 0 // java.util.List list
        13: .line 45
            ldc Lio/vertx/codegen/CodeGen;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic io.vertx.codegen.CodeGen.logger:Ljava/util/logging/Logger;
        14: .line 46
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putstatic io.vertx.codegen.CodeGen.loaderMap:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1   13     0     list  Ljava/util/List<Lio/vertx/codegen/ModelProvider;>;
            5    9     1   loader  Ljava/util/ServiceLoader<Lio/vertx/codegen/ModelProvider;>;
            7    8     2  aLoader  Lio/vertx/codegen/ModelProvider;
           11   12     1        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     9      10  Class java.lang.Exception

  public void <init>(javax.annotation.processing.ProcessingEnvironment, javax.annotation.processing.RoundEnvironment, java.lang.ClassLoader);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/annotation/processing/RoundEnvironment;Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // javax.annotation.processing.ProcessingEnvironment env
        start local 2 // javax.annotation.processing.RoundEnvironment round
        start local 3 // java.lang.ClassLoader loader
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.codegen.CodeGen.models:Ljava/util/Map;
         2: .line 49
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield io.vertx.codegen.CodeGen.all:Ljava/util/Set;
         3: .line 51
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.codegen.CodeGen.modules:Ljava/util/HashMap;
         4: .line 56
            aload 0 /* this */
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            putfield io.vertx.codegen.CodeGen.elementUtils:Ljavax/lang/model/util/Elements;
         5: .line 57
            aload 0 /* this */
            aload 1 /* env */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
            putfield io.vertx.codegen.CodeGen.typeUtils:Ljavax/lang/model/util/Types;
         6: .line 58
            getstatic io.vertx.codegen.CodeGen.loaderMap:Ljava/util/Map;
            aload 1 /* env */
            aload 3 /* loader */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 59
            aload 0 /* this */
            invokedynamic test(Lio/vertx/codegen/CodeGen;)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/codegen/CodeGen.lambda$0(Ljavax/lang/model/element/Element;)Z (7)
                  (Ljavax/lang/model/element/Element;)Z
            astore 4 /* implFilter */
        start local 4 // java.util.function.Predicate implFilter
         8: .line 68
            aload 2 /* round */
            invokeinterface javax.annotation.processing.RoundEnvironment.getRootElements:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         9: .line 69
            aload 4 /* implFilter */
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        10: .line 70
            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/codegen/CodeGen.lambda$1(Ljavax/lang/model/element/Element;)Z (6)
                  (Ljavax/lang/model/element/Element;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        11: .line 71
            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/CodeGen.lambda$2(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement; (6)
                  (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 1 /* env */
            invokedynamic accept(Lio/vertx/codegen/CodeGen;Ljavax/annotation/processing/ProcessingEnvironment;)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/codegen/CodeGen.lambda$3(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/TypeElement;)V (7)
                  (Ljavax/lang/model/element/TypeElement;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        12: .line 83
            aload 2 /* round */
            ldc Lio/vertx/codegen/annotations/ModuleGen;
            invokeinterface javax.annotation.processing.RoundEnvironment.getElementsAnnotatedWith:(Ljava/lang/Class;)Ljava/util/Set;
        13: .line 84
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        14: .line 85
            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/CodeGen.lambda$6(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement; (6)
                  (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        15: .line 86
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/codegen/CodeGen;)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/codegen/CodeGen.lambda$7(Ljavax/lang/model/element/PackageElement;)V (7)
                  (Ljavax/lang/model/element/PackageElement;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        16: .line 87
            return
        end local 4 // java.util.function.Predicate implFilter
        end local 3 // java.lang.ClassLoader loader
        end local 2 // javax.annotation.processing.RoundEnvironment round
        end local 1 // javax.annotation.processing.ProcessingEnvironment env
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lio/vertx/codegen/CodeGen;
            0   17     1         env  Ljavax/annotation/processing/ProcessingEnvironment;
            0   17     2       round  Ljavax/annotation/processing/RoundEnvironment;
            0   17     3      loader  Ljava/lang/ClassLoader;
            8   17     4  implFilter  Ljava/util/function/Predicate<Ljavax/lang/model/element/Element;>;
    MethodParameters:
        Name  Flags
      env     
      round   
      loader  

  public java.util.stream.Stream<java.util.Map$Entry<? extends javax.lang.model.element.Element, ? extends io.vertx.codegen.Model>> getModels();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // io.vertx.codegen.CodeGen this
         0: .line 90
            invokestatic java.util.stream.Stream.empty:()Ljava/util/stream/Stream;
            astore 1 /* s */
        start local 1 // java.util.stream.Stream s
         1: .line 91
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.models:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: io.vertx.codegen.CodeGen java.util.stream.Stream top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map
            astore 2 /* m */
        start local 2 // java.util.Map m
         3: .line 92
            aload 1 /* s */
            aload 2 /* m */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            astore 1 /* s */
        end local 2 // java.util.Map m
         4: .line 91
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 94
            aload 1 /* s */
            aload 0 /* this */
            invokevirtual io.vertx.codegen.CodeGen.getModuleModels:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokevirtual io.vertx.codegen.CodeGen.getPackageModels:()Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
            areturn
        end local 1 // java.util.stream.Stream s
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/codegen/CodeGen;
            1    6     1     s  Ljava/util/stream/Stream<Ljava/util/Map$Entry<+Ljavax/lang/model/element/Element;+Lio/vertx/codegen/Model;>;>;
            3    4     2     m  Ljava/util/Map<Ljava/lang/String;Ljava/util/Map$Entry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;>;
    Signature: ()Ljava/util/stream/Stream<Ljava/util/Map$Entry<+Ljavax/lang/model/element/Element;+Lio/vertx/codegen/Model;>;>;

  private java.util.stream.Stream<java.util.Map$Entry<javax.lang.model.element.PackageElement, io.vertx.codegen.PackageModel>> getPackageModels();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.codegen.CodeGen this
         0: .line 98
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.all:Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 99
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.elementUtils:Ljavax/lang/model/util/Elements;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Ljavax/lang/model/util/Elements;)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;
                  javax/lang/model/util/Elements.getPackageOf(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement; (9 itf)
                  (Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/PackageElement;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
         2: .line 100
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/codegen/CodeGen;)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/CodeGen.lambda$9(Ljavax/lang/model/element/PackageElement;)Ljava/util/Map$Entry; (7)
                  (Ljavax/lang/model/element/PackageElement;)Ljava/util/Map$Entry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 98
            areturn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/codegen/CodeGen;
    Signature: ()Ljava/util/stream/Stream<Ljava/util/Map$Entry<Ljavax/lang/model/element/PackageElement;Lio/vertx/codegen/PackageModel;>;>;

  private java.util.stream.Stream<java.util.Map$Entry<javax.lang.model.element.PackageElement, io.vertx.codegen.ModuleModel>> getModuleModels();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codegen.CodeGen this
         0: .line 108
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.modules:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/codegen/CodeGen;)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/CodeGen.lambda$11(Ljava/util/Map$Entry;)Ljava/util/Map$Entry; (7)
                  (Ljava/util/Map$Entry;)Ljava/util/Map$Entry;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            areturn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
    Signature: ()Ljava/util/stream/Stream<Ljava/util/Map$Entry<Ljavax/lang/model/element/PackageElement;Lio/vertx/codegen/ModuleModel;>;>;

  public io.vertx.codegen.ModuleModel getModuleModel(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/codegen/ModuleModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String modulePackage
         0: .line 112
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.modules:Ljava/util/HashMap;
            aload 1 /* modulePackage */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.lang.model.element.PackageElement
            astore 2 /* element */
        start local 2 // javax.lang.model.element.PackageElement element
         1: .line 113
            aload 2 /* element */
            ldc Lio/vertx/codegen/annotations/ModuleGen;
            invokeinterface javax.lang.model.element.PackageElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast io.vertx.codegen.annotations.ModuleGen
            astore 3 /* annotation */
        start local 3 // io.vertx.codegen.annotations.ModuleGen annotation
         2: .line 114
            aload 3 /* annotation */
            invokeinterface io.vertx.codegen.annotations.ModuleGen.name:()Ljava/lang/String;
            astore 4 /* moduleName */
        start local 4 // java.lang.String moduleName
         3: .line 115
            aload 4 /* moduleName */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         4: .line 116
            new io.vertx.codegen.GenException
            dup
            aload 2 /* element */
            ldc "A module name cannot be empty"
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         5: .line 119
      StackMap locals: javax.lang.model.element.PackageElement io.vertx.codegen.annotations.ModuleGen java.lang.String
      StackMap stack:
            getstatic io.vertx.codegen.Case.KEBAB:Lio/vertx/codegen/Case;
            aload 4 /* moduleName */
            invokevirtual io.vertx.codegen.Case.parse:(Ljava/lang/String;)Ljava/util/List;
            pop
         6: .line 120
            goto 9
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         7: pop
         8: .line 121
            new io.vertx.codegen.GenException
            dup
            aload 2 /* element */
            new java.lang.StringBuilder
            dup
            ldc "Module name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' does not follow the snake case format (dash separated name)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
         9: .line 123
      StackMap locals:
      StackMap stack:
            aload 3 /* annotation */
            invokeinterface io.vertx.codegen.annotations.ModuleGen.groupPackage:()Ljava/lang/String;
            astore 5 /* groupPackage */
        start local 5 // java.lang.String groupPackage
        10: .line 124
            aload 5 /* groupPackage */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 125
            aload 1 /* modulePackage */
            astore 5 /* groupPackage */
        12: .line 126
            goto 15
      StackMap locals: java.lang.String
      StackMap stack:
        13: aload 1 /* modulePackage */
            aload 5 /* groupPackage */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 15
        14: .line 127
            new io.vertx.codegen.GenException
            dup
            aload 2 /* element */
            new java.lang.StringBuilder
            dup
            ldc "A module package ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* modulePackage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") must be prefixed by the group package ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* groupPackage */
            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;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        15: .line 130
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.codegen.Case.QUALIFIED:Lio/vertx/codegen/Case;
            aload 5 /* groupPackage */
            invokevirtual io.vertx.codegen.Case.parse:(Ljava/lang/String;)Ljava/util/List;
            pop
        16: .line 131
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        17: pop
        18: .line 132
            new io.vertx.codegen.GenException
            dup
            aload 2 /* element */
            new java.lang.StringBuilder
            dup
            ldc "Invalid group package name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* groupPackage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.vertx.codegen.GenException.<init>:(Ljavax/lang/model/element/Element;Ljava/lang/String;)V
            athrow
        19: .line 134
      StackMap locals:
      StackMap stack:
            new io.vertx.codegen.ModuleInfo
            dup
            aload 1 /* modulePackage */
            aload 4 /* moduleName */
            aload 5 /* groupPackage */
            invokespecial io.vertx.codegen.ModuleInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* info */
        start local 6 // io.vertx.codegen.ModuleInfo info
        20: .line 135
            new io.vertx.codegen.type.AnnotationValueInfoFactory
            dup
            new io.vertx.codegen.type.TypeMirrorFactory
            dup
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.elementUtils:Ljavax/lang/model/util/Elements;
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.typeUtils:Ljavax/lang/model/util/Types;
            invokespecial io.vertx.codegen.type.TypeMirrorFactory.<init>:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/util/Types;)V
            invokespecial io.vertx.codegen.type.AnnotationValueInfoFactory.<init>:(Lio/vertx/codegen/type/TypeMirrorFactory;)V
            astore 7 /* annotationFactory */
        start local 7 // io.vertx.codegen.type.AnnotationValueInfoFactory annotationFactory
        21: .line 136
            aload 2 /* element */
            invokeinterface javax.lang.model.element.PackageElement.getAnnotationMirrors:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 7 /* annotationFactory */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lio/vertx/codegen/type/AnnotationValueInfoFactory;)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/AnnotationValueInfoFactory.processAnnotation(Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo; (5)
                  (Ljavax/lang/model/element/AnnotationMirror;)Lio/vertx/codegen/type/AnnotationValueInfo;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* annotationValueInfos */
        start local 8 // java.util.List annotationValueInfos
        22: .line 137
            new io.vertx.codegen.ModuleModel
            dup
            aload 2 /* element */
            aload 6 /* info */
            aload 8 /* annotationValueInfos */
            invokespecial io.vertx.codegen.ModuleModel.<init>:(Ljavax/lang/model/element/PackageElement;Lio/vertx/codegen/ModuleInfo;Ljava/util/List;)V
            areturn
        end local 8 // java.util.List annotationValueInfos
        end local 7 // io.vertx.codegen.type.AnnotationValueInfoFactory annotationFactory
        end local 6 // io.vertx.codegen.ModuleInfo info
        end local 5 // java.lang.String groupPackage
        end local 4 // java.lang.String moduleName
        end local 3 // io.vertx.codegen.annotations.ModuleGen annotation
        end local 2 // javax.lang.model.element.PackageElement element
        end local 1 // java.lang.String modulePackage
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0                  this  Lio/vertx/codegen/CodeGen;
            0   23     1         modulePackage  Ljava/lang/String;
            1   23     2               element  Ljavax/lang/model/element/PackageElement;
            2   23     3            annotation  Lio/vertx/codegen/annotations/ModuleGen;
            3   23     4            moduleName  Ljava/lang/String;
           10   23     5          groupPackage  Ljava/lang/String;
           20   23     6                  info  Lio/vertx/codegen/ModuleInfo;
           21   23     7     annotationFactory  Lio/vertx/codegen/type/AnnotationValueInfoFactory;
           22   23     8  annotationValueInfos  Ljava/util/List<Lio/vertx/codegen/type/AnnotationValueInfo;>;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.IllegalArgumentException
          15    16      17  Class java.lang.Exception
    MethodParameters:
               Name  Flags
      modulePackage  

  public io.vertx.codegen.PackageModel getPackageModel(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/codegen/PackageModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String fqn
         0: .line 141
            aload 0 /* this */
            invokevirtual io.vertx.codegen.CodeGen.getPackageModels:()Ljava/util/stream/Stream;
            aload 1 /* fqn */
            invokedynamic test(Ljava/lang/String;)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/codegen/CodeGen.lambda$14(Ljava/lang/String;Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            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;
                  java/util/Map$Entry.getValue()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Lio/vertx/codegen/PackageModel;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.codegen.PackageModel
            areturn
        end local 1 // java.lang.String fqn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
            0    1     1   fqn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fqn   

  public io.vertx.codegen.Model getModel(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/codegen/Model;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String fqcn
        start local 2 // java.lang.String kind
         0: .line 145
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.models:Ljava/util/Map;
            aload 2 /* kind */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 3 /* map */
        start local 3 // java.util.Map map
         1: .line 146
            aload 3 /* map */
            ifnonnull 3
         2: .line 147
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Source for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fqcn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 149
      StackMap locals: java.util.Map
      StackMap stack:
            aload 3 /* map */
            aload 1 /* fqcn */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         4: .line 150
            aload 4 /* entry */
            ifnonnull 6
         5: .line 151
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Source for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fqcn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 153
      StackMap locals: java.util.Map$Entry
      StackMap stack:
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.codegen.Model
            areturn
        end local 4 // java.util.Map$Entry entry
        end local 3 // java.util.Map map
        end local 2 // java.lang.String kind
        end local 1 // java.lang.String fqcn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lio/vertx/codegen/CodeGen;
            0    7     1   fqcn  Ljava/lang/String;
            0    7     2   kind  Ljava/lang/String;
            1    7     3    map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Map$Entry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;>;
            4    7     4  entry  Ljava/util/Map$Entry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;
    MethodParameters:
      Name  Flags
      fqcn  
      kind  

  public io.vertx.codegen.ClassModel getClassModel(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/codegen/ClassModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String fqcn
         0: .line 157
            aload 0 /* this */
            aload 1 /* fqcn */
            ldc "class"
            invokevirtual io.vertx.codegen.CodeGen.getModel:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/codegen/Model;
            checkcast io.vertx.codegen.ClassModel
            areturn
        end local 1 // java.lang.String fqcn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
            0    1     1  fqcn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fqcn  

  public io.vertx.codegen.EnumModel getEnumModel(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/codegen/EnumModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String fqcn
         0: .line 161
            aload 0 /* this */
            aload 1 /* fqcn */
            ldc "enum"
            invokevirtual io.vertx.codegen.CodeGen.getModel:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/codegen/Model;
            checkcast io.vertx.codegen.EnumModel
            areturn
        end local 1 // java.lang.String fqcn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
            0    1     1  fqcn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fqcn  

  public io.vertx.codegen.DataObjectModel getDataObjectModel(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/codegen/DataObjectModel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.lang.String fqcn
         0: .line 165
            aload 0 /* this */
            aload 1 /* fqcn */
            ldc "dataObject"
            invokevirtual io.vertx.codegen.CodeGen.getModel:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/codegen/Model;
            checkcast io.vertx.codegen.DataObjectModel
            areturn
        end local 1 // java.lang.String fqcn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
            0    1     1  fqcn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fqcn  

  private boolean lambda$0(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // javax.lang.model.element.Element elt
         0: .line 60
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1 /* elt */
            invokeinterface javax.lang.model.util.Elements.getPackageOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
            invokeinterface javax.lang.model.element.PackageElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            astore 2 /* fqn */
        start local 2 // java.lang.String fqn
         1: .line 61
            aload 2 /* fqn */
            ldc ".impl."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 2
            aload 2 /* fqn */
            ldc ".impl"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 62
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic io.vertx.codegen.CodeGen.logger:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Processed element "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* elt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is in an implementation package"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
         3: .line 63
            iconst_0
            ireturn
         4: .line 65
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.String fqn
        end local 1 // javax.lang.model.element.Element elt
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/codegen/CodeGen;
            0    5     1   elt  Ljavax/lang/model/element/Element;
            1    5     2   fqn  Ljava/lang/String;

  private static boolean lambda$1(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element elt
         0: .line 70
            aload 0 /* elt */
            instanceof javax.lang.model.element.TypeElement
            ireturn
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   elt  Ljavax/lang/model/element/Element;

  private static javax.lang.model.element.TypeElement lambda$2(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/TypeElement;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element elt
         0: .line 71
            aload 0 /* elt */
            checkcast javax.lang.model.element.TypeElement
            areturn
        end local 0 // javax.lang.model.element.Element elt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   elt  Ljavax/lang/model/element/Element;

  private void lambda$3(javax.annotation.processing.ProcessingEnvironment, javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/TypeElement;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // io.vertx.codegen.CodeGen this
        start local 2 // javax.lang.model.element.TypeElement te
         0: .line 72
            getstatic io.vertx.codegen.CodeGen.PROVIDERS:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: io.vertx.codegen.CodeGen javax.annotation.processing.ProcessingEnvironment javax.lang.model.element.TypeElement top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.codegen.ModelProvider
            astore 3 /* provider */
        start local 3 // io.vertx.codegen.ModelProvider provider
         2: .line 73
            aload 3 /* provider */
            aload 1
            aload 2 /* te */
            invokeinterface io.vertx.codegen.ModelProvider.getModel:(Ljavax/annotation/processing/ProcessingEnvironment;Ljavax/lang/model/element/TypeElement;)Lio/vertx/codegen/Model;
            astore 5 /* model */
        start local 5 // io.vertx.codegen.Model model
         3: .line 74
            aload 5 /* model */
            ifnull 9
         4: .line 75
            aload 5 /* model */
            invokeinterface io.vertx.codegen.Model.getKind:()Ljava/lang/String;
            astore 6 /* kind */
        start local 6 // java.lang.String kind
         5: .line 76
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.all:Ljava/util/Set;
            aload 2 /* te */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 77
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.models:Ljava/util/Map;
            aload 6 /* kind */
            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/CodeGen.lambda$4(Ljava/lang/String;)Ljava/util/Map; (6)
                  (Ljava/lang/String;)Ljava/util/Map;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 7 /* map */
        start local 7 // java.util.Map map
         7: .line 78
            new io.vertx.codegen.CodeGen$ModelEntry
            dup
            aload 2 /* te */
            aload 5 /* model */
            invokedynamic get(Lio/vertx/codegen/Model;)Ljava/util/function/Supplier;
              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;
                  io/vertx/codegen/CodeGen.lambda$5(Lio/vertx/codegen/Model;)Lio/vertx/codegen/Model; (6)
                  ()Lio/vertx/codegen/Model;
            invokespecial io.vertx.codegen.CodeGen$ModelEntry.<init>:(Ljavax/lang/model/element/Element;Ljava/util/function/Supplier;)V
            astore 8 /* entry */
        start local 8 // io.vertx.codegen.CodeGen$ModelEntry entry
         8: .line 79
            aload 7 /* map */
            aload 2 /* te */
            invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokestatic io.vertx.codegen.Helper.getNonGenericType:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // io.vertx.codegen.CodeGen$ModelEntry entry
        end local 7 // java.util.Map map
        end local 6 // java.lang.String kind
        end local 5 // io.vertx.codegen.Model model
        end local 3 // io.vertx.codegen.ModelProvider provider
         9: .line 72
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 82
            return
        end local 2 // javax.lang.model.element.TypeElement te
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/vertx/codegen/CodeGen;
            0   11     2        te  Ljavax/lang/model/element/TypeElement;
            2    9     3  provider  Lio/vertx/codegen/ModelProvider;
            3    9     5     model  Lio/vertx/codegen/Model;
            5    9     6      kind  Ljava/lang/String;
            7    9     7       map  Ljava/util/Map<Ljava/lang/String;Ljava/util/Map$Entry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;>;
            8    9     8     entry  Lio/vertx/codegen/CodeGen$ModelEntry<Ljavax/lang/model/element/TypeElement;Lio/vertx/codegen/Model;>;

  private static javax.lang.model.element.PackageElement lambda$6(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/PackageElement;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.lang.model.element.Element element
         0: .line 85
            aload 0 /* element */
            checkcast javax.lang.model.element.PackageElement
            areturn
        end local 0 // javax.lang.model.element.Element element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  element  Ljavax/lang/model/element/Element;

  private void lambda$7(javax.lang.model.element.PackageElement);
    descriptor: (Ljavax/lang/model/element/PackageElement;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // javax.lang.model.element.PackageElement element
         0: .line 86
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.modules:Ljava/util/HashMap;
            aload 1 /* element */
            invokeinterface javax.lang.model.element.PackageElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
            aload 1 /* element */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            return
        end local 1 // javax.lang.model.element.PackageElement element
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/codegen/CodeGen;
            0    1     1  element  Ljavax/lang/model/element/PackageElement;

  private java.util.Map$Entry lambda$9(javax.lang.model.element.PackageElement);
    descriptor: (Ljavax/lang/model/element/PackageElement;)Ljava/util/Map$Entry;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // javax.lang.model.element.PackageElement element
         0: .line 101
            new io.vertx.codegen.CodeGen$ModelEntry
            dup
            aload 1 /* element */
            aload 0 /* this */
            aload 1 /* element */
            invokedynamic get(Lio/vertx/codegen/CodeGen;Ljavax/lang/model/element/PackageElement;)Ljava/util/function/Supplier;
              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;
                  io/vertx/codegen/CodeGen.lambda$10(Ljavax/lang/model/element/PackageElement;)Lio/vertx/codegen/PackageModel; (7)
                  ()Lio/vertx/codegen/PackageModel;
            invokespecial io.vertx.codegen.CodeGen$ModelEntry.<init>:(Ljavax/lang/model/element/Element;Ljava/util/function/Supplier;)V
         1: .line 104
            areturn
        end local 1 // javax.lang.model.element.PackageElement element
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/codegen/CodeGen;
            0    2     1  element  Ljavax/lang/model/element/PackageElement;

  private java.util.Map$Entry lambda$11(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Ljava/util/Map$Entry;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
        start local 1 // java.util.Map$Entry entry
         0: .line 108
            new io.vertx.codegen.CodeGen$ModelEntry
            dup
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast javax.lang.model.element.PackageElement
            aload 0 /* this */
            aload 1 /* entry */
            invokedynamic get(Lio/vertx/codegen/CodeGen;Ljava/util/Map$Entry;)Ljava/util/function/Supplier;
              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;
                  io/vertx/codegen/CodeGen.lambda$12(Ljava/util/Map$Entry;)Lio/vertx/codegen/ModuleModel; (7)
                  ()Lio/vertx/codegen/ModuleModel;
            invokespecial io.vertx.codegen.CodeGen$ModelEntry.<init>:(Ljavax/lang/model/element/Element;Ljava/util/function/Supplier;)V
            areturn
        end local 1 // java.util.Map$Entry entry
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/codegen/CodeGen;
            0    1     1  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljavax/lang/model/element/PackageElement;>;

  private static boolean lambda$14(java.lang.String, java.util.Map$Entry);
    descriptor: (Ljava/lang/String;Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.Map$Entry pkg
         0: .line 141
            aload 1 /* pkg */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.codegen.PackageModel
            invokevirtual io.vertx.codegen.PackageModel.getFqn:()Ljava/lang/String;
            aload 0
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.Map$Entry pkg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   pkg  Ljava/util/Map$Entry<Ljavax/lang/model/element/PackageElement;Lio/vertx/codegen/PackageModel;>;

  private static java.util.Map lambda$4(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String a
         0: .line 77
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            areturn
        end local 0 // java.lang.String a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/lang/String;

  private static io.vertx.codegen.Model lambda$5(io.vertx.codegen.Model);
    descriptor: (Lio/vertx/codegen/Model;)Lio/vertx/codegen/Model;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 78
            aload 0
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private io.vertx.codegen.PackageModel lambda$10(javax.lang.model.element.PackageElement);
    descriptor: (Ljavax/lang/model/element/PackageElement;)Lio/vertx/codegen/PackageModel;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
         0: .line 101
            new io.vertx.codegen.PackageModel
            dup
         1: .line 102
            aload 1
            invokeinterface javax.lang.model.element.PackageElement.getQualifiedName:()Ljavax/lang/model/element/Name;
            invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
         2: .line 103
            aload 0 /* this */
            getfield io.vertx.codegen.CodeGen.elementUtils:Ljavax/lang/model/util/Elements;
            aload 1
            invokestatic io.vertx.codegen.ModuleInfo.resolve:(Ljavax/lang/model/util/Elements;Ljavax/lang/model/element/PackageElement;)Lio/vertx/codegen/ModuleInfo;
         3: .line 101
            invokespecial io.vertx.codegen.PackageModel.<init>:(Ljava/lang/String;Lio/vertx/codegen/ModuleInfo;)V
         4: .line 103
            areturn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/codegen/CodeGen;

  private io.vertx.codegen.ModuleModel lambda$12(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Lio/vertx/codegen/ModuleModel;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.codegen.CodeGen this
         0: .line 108
            aload 0 /* this */
            aload 1
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual io.vertx.codegen.CodeGen.getModuleModel:(Ljava/lang/String;)Lio/vertx/codegen/ModuleModel;
            areturn
        end local 0 // io.vertx.codegen.CodeGen this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codegen/CodeGen;
}
SourceFile: "CodeGen.java"
NestMembers:
  io.vertx.codegen.CodeGen$ModelEntry
InnerClasses:
  private ModelEntry = io.vertx.codegen.CodeGen$ModelEntry of io.vertx.codegen.CodeGen
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map