public class io.vertx.ext.mongo.impl.MongoClientImpl implements io.vertx.ext.mongo.MongoClient, io.vertx.core.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.mongo.impl.MongoClientImpl
  super_class: java.lang.Object
{
  private static final io.vertx.ext.mongo.UpdateOptions DEFAULT_UPDATE_OPTIONS;
    descriptor: Lio/vertx/ext/mongo/UpdateOptions;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.ext.mongo.FindOptions DEFAULT_FIND_OPTIONS;
    descriptor: Lio/vertx/ext/mongo/FindOptions;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.ext.mongo.AggregateOptions DEFAULT_AGGREGATE_OPTIONS;
    descriptor: Lio/vertx/ext/mongo/AggregateOptions;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.ext.mongo.BulkWriteOptions DEFAULT_BULK_WRITE_OPTIONS;
    descriptor: Lio/vertx/ext/mongo/BulkWriteOptions;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String DS_LOCAL_MAP_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "__vertx.MongoClient.datasources"

  private final io.vertx.core.impl.VertxInternal vertx;
    descriptor: Lio/vertx/core/impl/VertxInternal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.impl.ContextInternal creatingContext;
    descriptor: Lio/vertx/core/impl/ContextInternal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected com.mongodb.reactivestreams.client.MongoClient mongo;
    descriptor: Lcom/mongodb/reactivestreams/client/MongoClient;
    flags: (0x0004) ACC_PROTECTED

  private final io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder holder;
    descriptor: Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean useObjectId;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 69
            new io.vertx.ext.mongo.UpdateOptions
            dup
            invokespecial io.vertx.ext.mongo.UpdateOptions.<init>:()V
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
         1: .line 70
            new io.vertx.ext.mongo.FindOptions
            dup
            invokespecial io.vertx.ext.mongo.FindOptions.<init>:()V
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
         2: .line 71
            new io.vertx.ext.mongo.AggregateOptions
            dup
            invokespecial io.vertx.ext.mongo.AggregateOptions.<init>:()V
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_AGGREGATE_OPTIONS:Lio/vertx/ext/mongo/AggregateOptions;
         3: .line 72
            new io.vertx.ext.mongo.BulkWriteOptions
            dup
            invokespecial io.vertx.ext.mongo.BulkWriteOptions.<init>:()V
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_BULK_WRITE_OPTIONS:Lio/vertx/ext/mongo/BulkWriteOptions;
         4: .line 74
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.core.Vertx, io.vertx.core.json.JsonObject, java.lang.String);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.core.json.JsonObject config
        start local 3 // java.lang.String dataSourceName
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 1 /* vertx */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 85
            aload 2 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 86
            aload 3 /* dataSourceName */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 87
            aload 0 /* this */
            aload 1 /* vertx */
            checkcast io.vertx.core.impl.VertxInternal
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
         5: .line 88
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.creatingContext:Lio/vertx/core/impl/ContextInternal;
         6: .line 89
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* dataSourceName */
            aload 2 /* config */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.lookupHolder:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
         7: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            aload 1 /* vertx */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.mongo:(Lio/vertx/core/Vertx;)Lcom/mongodb/reactivestreams/client/MongoClient;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.mongo:Lcom/mongodb/reactivestreams/client/MongoClient;
         8: .line 91
            aload 0 /* this */
            aload 2 /* config */
            ldc "useObjectId"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
         9: .line 93
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.creatingContext:Lio/vertx/core/impl/ContextInternal;
            aload 0 /* this */
            invokeinterface io.vertx.core.impl.ContextInternal.addCloseHook:(Lio/vertx/core/Closeable;)V
        10: .line 94
            return
        end local 3 // java.lang.String dataSourceName
        end local 2 // io.vertx.core.json.JsonObject config
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   11     1           vertx  Lio/vertx/core/Vertx;
            0   11     2          config  Lio/vertx/core/json/JsonObject;
            0   11     3  dataSourceName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      vertx           
      config          
      dataSourceName  

  public void <init>(io.vertx.core.Vertx, io.vertx.core.json.JsonObject, java.lang.String, com.mongodb.MongoClientSettings);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;Ljava/lang/String;Lcom/mongodb/MongoClientSettings;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.core.json.JsonObject config
        start local 3 // java.lang.String dataSourceName
        start local 4 // com.mongodb.MongoClientSettings settings
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 97
            aload 1 /* vertx */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 98
            aload 2 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 99
            aload 3 /* dataSourceName */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 100
            aload 4 /* settings */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 101
            aload 0 /* this */
            aload 1 /* vertx */
            checkcast io.vertx.core.impl.VertxInternal
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
         6: .line 102
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.creatingContext:Lio/vertx/core/impl/ContextInternal;
         7: .line 103
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* dataSourceName */
            aload 2 /* config */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.lookupHolder:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
         8: .line 104
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            aload 1 /* vertx */
            aload 4 /* settings */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.mongo:(Lio/vertx/core/Vertx;Lcom/mongodb/MongoClientSettings;)Lcom/mongodb/reactivestreams/client/MongoClient;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.mongo:Lcom/mongodb/reactivestreams/client/MongoClient;
         9: .line 105
            aload 0 /* this */
            aload 2 /* config */
            ldc "useObjectId"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.vertx.core.json.JsonObject.getBoolean:(Ljava/lang/String;Ljava/lang/Boolean;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
        10: .line 107
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.creatingContext:Lio/vertx/core/impl/ContextInternal;
            aload 0 /* this */
            invokeinterface io.vertx.core.impl.ContextInternal.addCloseHook:(Lio/vertx/core/Closeable;)V
        11: .line 108
            return
        end local 4 // com.mongodb.MongoClientSettings settings
        end local 3 // java.lang.String dataSourceName
        end local 2 // io.vertx.core.json.JsonObject config
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   12     1           vertx  Lio/vertx/core/Vertx;
            0   12     2          config  Lio/vertx/core/json/JsonObject;
            0   12     3  dataSourceName  Ljava/lang/String;
            0   12     4        settings  Lcom/mongodb/MongoClientSettings;
    MethodParameters:
                Name  Flags
      vertx           
      config          
      dataSourceName  
      settings        

  public void close(io.vertx.core.Promise<java.lang.Void>);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Promise completionHandler
         0: .line 112
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.close:()V
         1: .line 113
            aload 1 /* completionHandler */
            invokeinterface io.vertx.core.Promise.complete:()V
         2: .line 114
            return
        end local 1 // io.vertx.core.Promise completionHandler
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  completionHandler  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Promise<Ljava/lang/Void;>;)V
    MethodParameters:
                   Name  Flags
      completionHandler  

  public io.vertx.core.Future<java.lang.Void> close();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
         0: .line 118
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.close:()V
         1: .line 119
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.creatingContext:Lio/vertx/core/impl/ContextInternal;
            aload 0 /* this */
            invokeinterface io.vertx.core.impl.ContextInternal.removeCloseHook:(Lio/vertx/core/Closeable;)V
         2: .line 120
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.succeededFuture:()Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public io.vertx.ext.mongo.MongoClient save(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 125
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.save:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 126
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 127
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2       document  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      document       
      resultHandler  

  public io.vertx.core.Future<java.lang.String> save(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
         0: .line 132
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aconst_null
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.saveWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2    document  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/lang/String;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      document    

  public io.vertx.ext.mongo.MongoClient saveWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 137
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.saveWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 138
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 139
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2       document  Lio/vertx/core/json/JsonObject;
            0    3     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            1    3     5         future  Lio/vertx/core/Future<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      document       
      writeOption    
      resultHandler  

  public io.vertx.core.Future<java.lang.String> saveWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
         0: .line 144
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 145
            aload 2 /* document */
            ldc "document cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 147
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         3: .line 148
            aload 2 /* document */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* id */
        start local 5 // java.lang.Object id
         4: .line 150
            aload 5 /* id */
            ifnonnull 8
         5: .line 151
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.Promise promise
         6: .line 152
            aload 4 /* coll */
            aload 2 /* document */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.insertOne:(Ljava/lang/Object;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 6 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         7: .line 153
            aload 6 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            aload 2 /* document */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;Lio/vertx/core/json/JsonObject;)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/ext/mongo/impl/MongoClientImpl.lambda$0(Lio/vertx/core/json/JsonObject;Ljava/lang/Void;)Ljava/lang/String; (7)
                  (Ljava/lang/Void;)Ljava/lang/String;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.Promise promise
         8: .line 156
      StackMap locals: com.mongodb.reactivestreams.client.MongoCollection java.lang.Object
      StackMap stack:
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 6 /* filter */
        start local 6 // io.vertx.core.json.JsonObject filter
         9: .line 157
            aload 0 /* this */
            aload 2 /* document */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 7 /* encodedDocument */
        start local 7 // io.vertx.core.json.JsonObject encodedDocument
        10: .line 158
            aload 6 /* filter */
            ldc "_id"
            aload 7 /* encodedDocument */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        11: .line 160
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            iconst_1
            invokevirtual com.mongodb.client.model.ReplaceOptions.upsert:(Z)Lcom/mongodb/client/model/ReplaceOptions;
            astore 8 /* replaceOptions */
        start local 8 // com.mongodb.client.model.ReplaceOptions replaceOptions
        12: .line 162
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 9 /* promise */
        start local 9 // io.vertx.core.Promise promise
        13: .line 163
            aload 4 /* coll */
            aload 0 /* this */
            aload 6 /* filter */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            aload 7 /* encodedDocument */
            aload 8 /* replaceOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 9 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        14: .line 164
            aload 9 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.mapEmpty:()Lio/vertx/core/Future;
            areturn
        end local 9 // io.vertx.core.Promise promise
        end local 8 // com.mongodb.client.model.ReplaceOptions replaceOptions
        end local 7 // io.vertx.core.json.JsonObject encodedDocument
        end local 6 // io.vertx.core.json.JsonObject filter
        end local 5 // java.lang.Object id
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   15     1       collection  Ljava/lang/String;
            0   15     2         document  Lio/vertx/core/json/JsonObject;
            0   15     3      writeOption  Lio/vertx/ext/mongo/WriteOption;
            3   15     4             coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4   15     5               id  Ljava/lang/Object;
            6    8     6          promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
            9   15     6           filter  Lio/vertx/core/json/JsonObject;
           10   15     7  encodedDocument  Lio/vertx/core/json/JsonObject;
           12   15     8   replaceOptions  Lcom/mongodb/client/model/ReplaceOptions;
           13   15     9          promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future<Ljava/lang/String;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      collection   
      document     
      writeOption  

  public io.vertx.ext.mongo.MongoClient insert(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 169
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.insert:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 170
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 171
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2       document  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      document       
      resultHandler  

  public io.vertx.core.Future<java.lang.String> insert(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
         0: .line 176
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aconst_null
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.insertWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2    document  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/lang/String;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      document    

  public io.vertx.ext.mongo.MongoClient insertWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 181
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.insertWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 182
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 183
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2       document  Lio/vertx/core/json/JsonObject;
            0    3     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            1    3     5         future  Lio/vertx/core/Future<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      document       
      writeOption    
      resultHandler  

  public io.vertx.core.Future<java.lang.String> insertWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject document
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
         0: .line 188
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 189
            aload 2 /* document */
            ldc "document cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 191
            aload 0 /* this */
            aload 2 /* document */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 4 /* encodedDocument */
        start local 4 // io.vertx.core.json.JsonObject encodedDocument
         3: .line 192
            aload 2 /* document */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            istore 5 /* hasCustomId */
        start local 5 // boolean hasCustomId
         4: .line 194
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 6 /* coll */
        start local 6 // com.mongodb.reactivestreams.client.MongoCollection coll
         5: .line 196
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 7 /* promise */
        start local 7 // io.vertx.core.Promise promise
         6: .line 197
            aload 6 /* coll */
            aload 4 /* encodedDocument */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.insertOne:(Ljava/lang/Object;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 7 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         7: .line 198
            aload 7 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            iload 5 /* hasCustomId */
            aload 4 /* encodedDocument */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;ZLio/vertx/core/json/JsonObject;)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/ext/mongo/impl/MongoClientImpl.lambda$1(ZLio/vertx/core/json/JsonObject;Ljava/lang/Void;)Ljava/lang/String; (7)
                  (Ljava/lang/Void;)Ljava/lang/String;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 7 // io.vertx.core.Promise promise
        end local 6 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 5 // boolean hasCustomId
        end local 4 // io.vertx.core.json.JsonObject encodedDocument
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject document
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    8     1       collection  Ljava/lang/String;
            0    8     2         document  Lio/vertx/core/json/JsonObject;
            0    8     3      writeOption  Lio/vertx/ext/mongo/WriteOption;
            3    8     4  encodedDocument  Lio/vertx/core/json/JsonObject;
            4    8     5      hasCustomId  Z
            5    8     6             coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            6    8     7          promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future<Ljava/lang/String;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      collection   
      document     
      writeOption  

  public io.vertx.ext.mongo.MongoClient updateCollection(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientUpdateResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 203
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.updateCollection:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 204
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 205
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3         update  Lio/vertx/core/json/JsonObject;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientUpdateResult> updateCollection(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
         0: .line 210
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.updateCollectionWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
            0    1     3      update  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      update      

  public io.vertx.ext.mongo.MongoClient updateCollectionWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.UpdateOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientUpdateResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.ext.mongo.UpdateOptions options
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 215
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.updateCollectionWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            astore 6 /* future */
        start local 6 // io.vertx.core.Future future
         1: .line 216
            aload 6 /* future */
            aload 5 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 217
            aload 0 /* this */
            areturn
        end local 6 // io.vertx.core.Future future
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // io.vertx.ext.mongo.UpdateOptions options
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3         update  Lio/vertx/core/json/JsonObject;
            0    3     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0    3     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            1    3     6         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      options        
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientUpdateResult> updateCollectionWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.ext.mongo.UpdateOptions options
         0: .line 222
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 223
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 224
            aload 3 /* update */
            ldc "update cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 225
            aload 4 /* options */
            ldc "options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 227
            aload 0 /* this */
            aload 1 /* collection */
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getWriteOption:()Lio/vertx/ext/mongo/WriteOption;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.reactivestreams.client.MongoCollection coll
         5: .line 228
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 6 /* bquery */
        start local 6 // org.bson.conversions.Bson bquery
         6: .line 229
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            aload 3 /* update */
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.generateIdIfNeeded:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 7 /* bupdate */
        start local 7 // org.bson.conversions.Bson bupdate
         7: .line 232
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            invokevirtual com.mongodb.client.model.UpdateOptions.upsert:(Z)Lcom/mongodb/client/model/UpdateOptions;
            astore 8 /* updateOptions */
        start local 8 // com.mongodb.client.model.UpdateOptions updateOptions
         8: .line 233
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            ifnull 12
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.isEmpty:()Z
            ifne 12
         9: .line 234
            new java.util.ArrayList
            dup
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 9 /* bArrayFilters */
        start local 9 // java.util.List bArrayFilters
        10: .line 235
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.getList:()Ljava/util/List;
            aload 0 /* this */
            aload 9 /* bArrayFilters */
            invokedynamic accept(Lio/vertx/ext/mongo/impl/MongoClientImpl;Ljava/util/List;)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/ext/mongo/impl/MongoClientImpl.lambda$2(Ljava/util/List;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        11: .line 236
            aload 8 /* updateOptions */
            aload 9 /* bArrayFilters */
            invokevirtual com.mongodb.client.model.UpdateOptions.arrayFilters:(Ljava/util/List;)Lcom/mongodb/client/model/UpdateOptions;
            pop
        end local 9 // java.util.List bArrayFilters
        12: .line 240
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject io.vertx.ext.mongo.UpdateOptions com.mongodb.reactivestreams.client.MongoCollection org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions
      StackMap stack:
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isMulti:()Z
            ifeq 15
        13: .line 241
            aload 5 /* coll */
            aload 6 /* bquery */
            aload 7 /* bupdate */
            aload 8 /* updateOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lorg/reactivestreams/Publisher;
            astore 9 /* publisher */
        start local 9 // org.reactivestreams.Publisher publisher
        14: .line 242
            goto 16
        end local 9 // org.reactivestreams.Publisher publisher
        15: .line 243
      StackMap locals:
      StackMap stack:
            aload 5 /* coll */
            aload 6 /* bquery */
            aload 7 /* bupdate */
            aload 8 /* updateOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)Lorg/reactivestreams/Publisher;
            astore 9 /* publisher */
        start local 9 // org.reactivestreams.Publisher publisher
        16: .line 246
      StackMap locals: org.reactivestreams.Publisher
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 10 /* promise */
        start local 10 // io.vertx.core.Promise promise
        17: .line 247
            aload 9 /* publisher */
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 10 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        18: .line 248
            aload 10 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/ext/mongo/impl/Utils.toMongoClientUpdateResult(Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult; (6)
                  (Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 10 // io.vertx.core.Promise promise
        end local 9 // org.reactivestreams.Publisher publisher
        end local 8 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 7 // org.bson.conversions.Bson bupdate
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 4 // io.vertx.ext.mongo.UpdateOptions options
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   19     1     collection  Ljava/lang/String;
            0   19     2          query  Lio/vertx/core/json/JsonObject;
            0   19     3         update  Lio/vertx/core/json/JsonObject;
            0   19     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            5   19     5           coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            6   19     6         bquery  Lorg/bson/conversions/Bson;
            7   19     7        bupdate  Lorg/bson/conversions/Bson;
            8   19     8  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
           10   12     9  bArrayFilters  Ljava/util/List<Lorg/bson/conversions/Bson;>;
           14   15     9      publisher  Lorg/reactivestreams/Publisher<Lcom/mongodb/client/result/UpdateResult;>;
           16   19     9      publisher  Lorg/reactivestreams/Publisher<Lcom/mongodb/client/result/UpdateResult;>;
           17   19    10        promise  Lio/vertx/core/Promise<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      update      
      options     

  private io.vertx.core.json.JsonObject generateIdIfNeeded(io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.json.JsonObject query
        start local 2 // io.vertx.core.json.JsonObject update
        start local 3 // io.vertx.ext.mongo.UpdateOptions options
         0: .line 252
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            ifeq 8
            aload 2 /* update */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifne 8
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifne 8
         1: .line 253
            aload 2 /* update */
            ldc "$setOnInsert"
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokevirtual io.vertx.core.json.JsonObject.getJsonObject:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 4 /* setId */
        start local 4 // io.vertx.core.json.JsonObject setId
         2: .line 257
            aload 1 /* query */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 258
            aload 1 /* query */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* id */
        start local 5 // java.lang.String id
         4: .line 259
            goto 6
        end local 5 // java.lang.String id
         5: .line 260
      StackMap locals: io.vertx.core.json.JsonObject
      StackMap stack:
            invokestatic io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec.generateHexObjectId:()Ljava/lang/String;
            astore 5 /* id */
        start local 5 // java.lang.String id
         6: .line 262
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* setId */
            ldc "_id"
            aload 5 /* id */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         7: .line 263
            aload 2 /* update */
            ldc "$setOnInsert"
            aload 4 /* setId */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        end local 5 // java.lang.String id
        end local 4 // io.vertx.core.json.JsonObject setId
         8: .line 265
      StackMap locals:
      StackMap stack:
            aload 2 /* update */
            areturn
        end local 3 // io.vertx.ext.mongo.UpdateOptions options
        end local 2 // io.vertx.core.json.JsonObject update
        end local 1 // io.vertx.core.json.JsonObject query
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    9     1    query  Lio/vertx/core/json/JsonObject;
            0    9     2   update  Lio/vertx/core/json/JsonObject;
            0    9     3  options  Lio/vertx/ext/mongo/UpdateOptions;
            2    8     4    setId  Lio/vertx/core/json/JsonObject;
            4    5     5       id  Ljava/lang/String;
            6    8     5       id  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      query    
      update   
      options  

  public io.vertx.ext.mongo.MongoClient replaceDocuments(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientUpdateResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 270
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.replaceDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 271
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 272
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3        replace  Lio/vertx/core/json/JsonObject;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientUpdateResult> replaceDocuments(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
         0: .line 277
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.replaceDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
            0    1     3     replace  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      replace     

  public io.vertx.ext.mongo.MongoClient replaceDocumentsWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.UpdateOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientUpdateResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.ext.mongo.UpdateOptions options
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 282
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.replaceDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            astore 6 /* future */
        start local 6 // io.vertx.core.Future future
         1: .line 283
            aload 6 /* future */
            aload 5 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 284
            aload 0 /* this */
            areturn
        end local 6 // io.vertx.core.Future future
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // io.vertx.ext.mongo.UpdateOptions options
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3        replace  Lio/vertx/core/json/JsonObject;
            0    3     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0    3     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            1    3     6         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      options        
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientUpdateResult> replaceDocumentsWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.ext.mongo.UpdateOptions options
         0: .line 289
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 290
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 291
            aload 3 /* replace */
            ldc "update cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 292
            aload 4 /* options */
            ldc "options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 294
            aload 0 /* this */
            aload 1 /* collection */
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getWriteOption:()Lio/vertx/ext/mongo/WriteOption;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.reactivestreams.client.MongoCollection coll
         5: .line 295
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 6 /* bquery */
        start local 6 // org.bson.conversions.Bson bquery
         6: .line 296
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            invokevirtual com.mongodb.client.model.ReplaceOptions.upsert:(Z)Lcom/mongodb/client/model/ReplaceOptions;
            astore 7 /* replaceOptions */
        start local 7 // com.mongodb.client.model.ReplaceOptions replaceOptions
         7: .line 297
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 8 /* promise */
        start local 8 // io.vertx.core.Promise promise
         8: .line 298
            aload 5 /* coll */
            aload 6 /* bquery */
            aload 0 /* this */
            aload 3 /* replace */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            aload 7 /* replaceOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 8 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         9: .line 299
            aload 8 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/ext/mongo/impl/Utils.toMongoClientUpdateResult(Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult; (6)
                  (Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 8 // io.vertx.core.Promise promise
        end local 7 // com.mongodb.client.model.ReplaceOptions replaceOptions
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 4 // io.vertx.ext.mongo.UpdateOptions options
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   10     1      collection  Ljava/lang/String;
            0   10     2           query  Lio/vertx/core/json/JsonObject;
            0   10     3         replace  Lio/vertx/core/json/JsonObject;
            0   10     4         options  Lio/vertx/ext/mongo/UpdateOptions;
            5   10     5            coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            6   10     6          bquery  Lorg/bson/conversions/Bson;
            7   10     7  replaceOptions  Lcom/mongodb/client/model/ReplaceOptions;
            8   10     8         promise  Lio/vertx/core/Promise<Lcom/mongodb/client/result/UpdateResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      replace     
      options     

  public io.vertx.ext.mongo.MongoClient find(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<io.vertx.core.json.JsonObject>>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 304
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.find:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 305
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 306
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  public io.vertx.core.Future<java.util.List<io.vertx.core.json.JsonObject>> find(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 311
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.ext.mongo.MongoClient findWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<io.vertx.core.json.JsonObject>>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions options
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 316
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 317
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 318
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.FindOptions options
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3        options  Lio/vertx/ext/mongo/FindOptions;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;>;
            1    3     5         future  Lio/vertx/core/Future<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      options        
      resultHandler  

  public io.vertx.core.Future<java.util.List<io.vertx.core.json.JsonObject>> findWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions options
         0: .line 323
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 324
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 326
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.Promise promise
         3: .line 327
            aload 0 /* this */
            aload 1 /* collection */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.doFind:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lcom/mongodb/reactivestreams/client/FindPublisher;
         4: .line 328
            new io.vertx.ext.mongo.impl.MappingAndBufferingSubscriber
            dup
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;)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/ext/mongo/impl/MongoClientImpl.decodeKeyWhenUseObjectId(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject; (7)
                  (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            aload 4 /* promise */
            invokespecial io.vertx.ext.mongo.impl.MappingAndBufferingSubscriber.<init>:(Ljava/util/function/Function;Lio/vertx/core/Promise;)V
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         5: .line 329
            aload 4 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.Promise promise
        end local 3 // io.vertx.ext.mongo.FindOptions options
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    6     1  collection  Ljava/lang/String;
            0    6     2       query  Lio/vertx/core/json/JsonObject;
            0    6     3     options  Lio/vertx/ext/mongo/FindOptions;
            3    6     4     promise  Lio/vertx/core/Promise<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    MethodParameters:
            Name  Flags
      collection  
      query       
      options     

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> findBatch(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 334
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findBatchWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/streams/ReadStream;
            areturn
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> findBatchWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions options
         0: .line 339
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 340
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 341
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.doFind:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            astore 4 /* view */
        start local 4 // com.mongodb.reactivestreams.client.FindPublisher view
         3: .line 342
            new io.vertx.ext.mongo.impl.PublisherAdapter
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            aload 4 /* view */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getBatchSize:()I
            invokespecial io.vertx.ext.mongo.impl.PublisherAdapter.<init>:(Lio/vertx/core/impl/ContextInternal;Lorg/reactivestreams/Publisher;I)V
            areturn
        end local 4 // com.mongodb.reactivestreams.client.FindPublisher view
        end local 3 // io.vertx.ext.mongo.FindOptions options
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    4     1  collection  Ljava/lang/String;
            0    4     2       query  Lio/vertx/core/json/JsonObject;
            0    4     3     options  Lio/vertx/ext/mongo/FindOptions;
            3    4     4        view  Lcom/mongodb/reactivestreams/client/FindPublisher<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  
      query       
      options     

  public io.vertx.ext.mongo.MongoClient findOne(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject fields
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 347
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* fields */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOne:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 348
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 349
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.json.JsonObject fields
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3         fields  Lio/vertx/core/json/JsonObject;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      query          
      fields         
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOne(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject fields
         0: .line 354
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 355
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 357
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 4 /* encodedQuery */
        start local 4 // io.vertx.core.json.JsonObject encodedQuery
         3: .line 359
            aload 0 /* this */
            aload 4 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 5 /* bquery */
        start local 5 // org.bson.conversions.Bson bquery
         4: .line 360
            aload 0 /* this */
            aload 3 /* fields */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 6 /* bfields */
        start local 6 // org.bson.conversions.Bson bfields
         5: .line 361
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 7 /* promise */
        start local 7 // io.vertx.core.Promise promise
         6: .line 362
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            aload 5 /* bquery */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.find:(Lorg/bson/conversions/Bson;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            aload 6 /* bfields */
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.first:()Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 7 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         7: .line 363
            aload 7 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;)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/ext/mongo/impl/MongoClientImpl.lambda$6(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject; (7)
                  (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 7 // io.vertx.core.Promise promise
        end local 6 // org.bson.conversions.Bson bfields
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // io.vertx.core.json.JsonObject encodedQuery
        end local 3 // io.vertx.core.json.JsonObject fields
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    8     1    collection  Ljava/lang/String;
            0    8     2         query  Lio/vertx/core/json/JsonObject;
            0    8     3        fields  Lio/vertx/core/json/JsonObject;
            3    8     4  encodedQuery  Lio/vertx/core/json/JsonObject;
            4    8     5        bquery  Lorg/bson/conversions/Bson;
            5    8     6       bfields  Lorg/bson/conversions/Bson;
            6    8     7       promise  Lio/vertx/core/Promise<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      fields      

  public io.vertx.ext.mongo.MongoClient findOneAndUpdate(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 368
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndUpdate:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 369
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 370
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3         update  Lio/vertx/core/json/JsonObject;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndUpdate(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
         0: .line 375
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndUpdateWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
            0    1     3      update  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      update      

  public io.vertx.ext.mongo.MongoClient findOneAndUpdateWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.ext.mongo.UpdateOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.ext.mongo.FindOptions findOptions
        start local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 380
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            aload 4 /* findOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndUpdateWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            astore 7 /* future */
        start local 7 // io.vertx.core.Future future
         1: .line 381
            aload 7 /* future */
            aload 6 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 382
            aload 0 /* this */
            areturn
        end local 7 // io.vertx.core.Future future
        end local 6 // io.vertx.core.Handler resultHandler
        end local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        end local 4 // io.vertx.ext.mongo.FindOptions findOptions
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3         update  Lio/vertx/core/json/JsonObject;
            0    3     4    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0    3     5  updateOptions  Lio/vertx/ext/mongo/UpdateOptions;
            0    3     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     7         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      findOptions    
      updateOptions  
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndUpdateWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject update
        start local 4 // io.vertx.ext.mongo.FindOptions findOptions
        start local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
         0: .line 387
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 388
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 389
            aload 3 /* update */
            ldc "update cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 390
            aload 4 /* findOptions */
            ldc "find options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 391
            aload 5 /* updateOptions */
            ldc "update options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 393
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 6 /* encodedQuery */
        start local 6 // io.vertx.core.json.JsonObject encodedQuery
         6: .line 395
            aload 0 /* this */
            aload 6 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 7 /* bquery */
        start local 7 // org.bson.conversions.Bson bquery
         7: .line 396
            aload 0 /* this */
            aload 3 /* update */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 8 /* bupdate */
        start local 8 // org.bson.conversions.Bson bupdate
         8: .line 397
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            astore 9 /* foauOptions */
        start local 9 // com.mongodb.client.model.FindOneAndUpdateOptions foauOptions
         9: .line 398
            aload 9 /* foauOptions */
            aload 0 /* this */
            aload 4 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        10: .line 399
            aload 9 /* foauOptions */
            aload 0 /* this */
            aload 4 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        11: .line 400
            aload 9 /* foauOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.upsert:(Z)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        12: .line 401
            aload 9 /* foauOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isReturningNewDocument:()Z
            ifeq 13
            getstatic com.mongodb.client.model.ReturnDocument.AFTER:Lcom/mongodb/client/model/ReturnDocument;
            goto 14
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject io.vertx.ext.mongo.FindOptions io.vertx.ext.mongo.UpdateOptions io.vertx.core.json.JsonObject org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.FindOneAndUpdateOptions
      StackMap stack: com.mongodb.client.model.FindOneAndUpdateOptions
        13: getstatic com.mongodb.client.model.ReturnDocument.BEFORE:Lcom/mongodb/client/model/ReturnDocument;
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject io.vertx.ext.mongo.FindOptions io.vertx.ext.mongo.UpdateOptions io.vertx.core.json.JsonObject org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.FindOneAndUpdateOptions
      StackMap stack: com.mongodb.client.model.FindOneAndUpdateOptions com.mongodb.client.model.ReturnDocument
        14: invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.returnDocument:(Lcom/mongodb/client/model/ReturnDocument;)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        15: .line 402
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            ifnull 19
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.isEmpty:()Z
            ifne 19
        16: .line 403
            new java.util.ArrayList
            dup
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* bArrayFilters */
        start local 10 // java.util.List bArrayFilters
        17: .line 404
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.getArrayFilters:()Lio/vertx/core/json/JsonArray;
            invokevirtual io.vertx.core.json.JsonArray.getList:()Ljava/util/List;
            aload 0 /* this */
            aload 10 /* bArrayFilters */
            invokedynamic accept(Lio/vertx/ext/mongo/impl/MongoClientImpl;Ljava/util/List;)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/ext/mongo/impl/MongoClientImpl.lambda$7(Ljava/util/List;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        18: .line 405
            aload 9 /* foauOptions */
            aload 10 /* bArrayFilters */
            invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.arrayFilters:(Ljava/util/List;)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        end local 10 // java.util.List bArrayFilters
        19: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 10 /* coll */
        start local 10 // com.mongodb.reactivestreams.client.MongoCollection coll
        20: .line 409
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 11 /* promise */
        start local 11 // io.vertx.core.Promise promise
        21: .line 410
            aload 10 /* coll */
            aload 7 /* bquery */
            aload 8 /* bupdate */
            aload 9 /* foauOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 11 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        22: .line 411
            aload 11 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 11 // io.vertx.core.Promise promise
        end local 10 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 9 // com.mongodb.client.model.FindOneAndUpdateOptions foauOptions
        end local 8 // org.bson.conversions.Bson bupdate
        end local 7 // org.bson.conversions.Bson bquery
        end local 6 // io.vertx.core.json.JsonObject encodedQuery
        end local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        end local 4 // io.vertx.ext.mongo.FindOptions findOptions
        end local 3 // io.vertx.core.json.JsonObject update
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   23     1     collection  Ljava/lang/String;
            0   23     2          query  Lio/vertx/core/json/JsonObject;
            0   23     3         update  Lio/vertx/core/json/JsonObject;
            0   23     4    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0   23     5  updateOptions  Lio/vertx/ext/mongo/UpdateOptions;
            6   23     6   encodedQuery  Lio/vertx/core/json/JsonObject;
            7   23     7         bquery  Lorg/bson/conversions/Bson;
            8   23     8        bupdate  Lorg/bson/conversions/Bson;
            9   23     9    foauOptions  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
           17   19    10  bArrayFilters  Ljava/util/List<Lorg/bson/conversions/Bson;>;
           20   23    10           coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
           21   23    11        promise  Lio/vertx/core/Promise<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      findOptions    
      updateOptions  

  public io.vertx.ext.mongo.MongoClient findOneAndReplace(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 416
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndReplace:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 417
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 418
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3        replace  Lio/vertx/core/json/JsonObject;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndReplace(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
         0: .line 423
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_UPDATE_OPTIONS:Lio/vertx/ext/mongo/UpdateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndReplaceWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
            0    1     3     replace  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       
      replace     

  public io.vertx.ext.mongo.MongoClient findOneAndReplaceWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.ext.mongo.UpdateOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.ext.mongo.FindOptions findOptions
        start local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        start local 6 // io.vertx.core.Handler resultHandler
         0: .line 428
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            aload 4 /* findOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndReplaceWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
            astore 7 /* future */
        start local 7 // io.vertx.core.Future future
         1: .line 429
            aload 7 /* future */
            aload 6 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 430
            aload 0 /* this */
            areturn
        end local 7 // io.vertx.core.Future future
        end local 6 // io.vertx.core.Handler resultHandler
        end local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        end local 4 // io.vertx.ext.mongo.FindOptions findOptions
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3        replace  Lio/vertx/core/json/JsonObject;
            0    3     4    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0    3     5  updateOptions  Lio/vertx/ext/mongo/UpdateOptions;
            0    3     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     7         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      findOptions    
      updateOptions  
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndReplaceWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.json.JsonObject replace
        start local 4 // io.vertx.ext.mongo.FindOptions findOptions
        start local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
         0: .line 435
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 436
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 437
            aload 4 /* findOptions */
            ldc "find options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 438
            aload 5 /* updateOptions */
            ldc "update options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 440
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 6 /* encodedQuery */
        start local 6 // io.vertx.core.json.JsonObject encodedQuery
         5: .line 442
            aload 0 /* this */
            aload 6 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 7 /* bquery */
        start local 7 // org.bson.conversions.Bson bquery
         6: .line 443
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            astore 8 /* foarOptions */
        start local 8 // com.mongodb.client.model.FindOneAndReplaceOptions foarOptions
         7: .line 444
            aload 8 /* foarOptions */
            aload 0 /* this */
            aload 4 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndReplaceOptions.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            pop
         8: .line 445
            aload 8 /* foarOptions */
            aload 0 /* this */
            aload 4 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndReplaceOptions.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            pop
         9: .line 446
            aload 8 /* foarOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            invokevirtual com.mongodb.client.model.FindOneAndReplaceOptions.upsert:(Z)Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            pop
        10: .line 447
            aload 8 /* foarOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isReturningNewDocument:()Z
            ifeq 11
            getstatic com.mongodb.client.model.ReturnDocument.AFTER:Lcom/mongodb/client/model/ReturnDocument;
            goto 12
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject io.vertx.ext.mongo.FindOptions io.vertx.ext.mongo.UpdateOptions io.vertx.core.json.JsonObject org.bson.conversions.Bson com.mongodb.client.model.FindOneAndReplaceOptions
      StackMap stack: com.mongodb.client.model.FindOneAndReplaceOptions
        11: getstatic com.mongodb.client.model.ReturnDocument.BEFORE:Lcom/mongodb/client/model/ReturnDocument;
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.json.JsonObject io.vertx.ext.mongo.FindOptions io.vertx.ext.mongo.UpdateOptions io.vertx.core.json.JsonObject org.bson.conversions.Bson com.mongodb.client.model.FindOneAndReplaceOptions
      StackMap stack: com.mongodb.client.model.FindOneAndReplaceOptions com.mongodb.client.model.ReturnDocument
        12: invokevirtual com.mongodb.client.model.FindOneAndReplaceOptions.returnDocument:(Lcom/mongodb/client/model/ReturnDocument;)Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            pop
        13: .line 449
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 9 /* coll */
        start local 9 // com.mongodb.reactivestreams.client.MongoCollection coll
        14: .line 450
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 10 /* promise */
        start local 10 // io.vertx.core.Promise promise
        15: .line 451
            aload 9 /* coll */
            aload 7 /* bquery */
            aload 3 /* replace */
            aload 8 /* foarOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 10 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        16: .line 452
            aload 10 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 10 // io.vertx.core.Promise promise
        end local 9 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 8 // com.mongodb.client.model.FindOneAndReplaceOptions foarOptions
        end local 7 // org.bson.conversions.Bson bquery
        end local 6 // io.vertx.core.json.JsonObject encodedQuery
        end local 5 // io.vertx.ext.mongo.UpdateOptions updateOptions
        end local 4 // io.vertx.ext.mongo.FindOptions findOptions
        end local 3 // io.vertx.core.json.JsonObject replace
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   17     1     collection  Ljava/lang/String;
            0   17     2          query  Lio/vertx/core/json/JsonObject;
            0   17     3        replace  Lio/vertx/core/json/JsonObject;
            0   17     4    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0   17     5  updateOptions  Lio/vertx/ext/mongo/UpdateOptions;
            5   17     6   encodedQuery  Lio/vertx/core/json/JsonObject;
            6   17     7         bquery  Lorg/bson/conversions/Bson;
            7   17     8    foarOptions  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
           14   17     9           coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
           15   17    10        promise  Lio/vertx/core/Promise<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/ext/mongo/UpdateOptions;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      findOptions    
      updateOptions  

  public io.vertx.ext.mongo.MongoClient findOneAndDelete(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 457
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndDelete:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 458
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 459
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     4         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndDelete(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 464
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndDeleteWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.ext.mongo.MongoClient findOneAndDeleteWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions findOptions
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 469
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* findOptions */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndDeleteWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 470
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 471
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.FindOptions findOptions
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      findOptions    
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> findOneAndDeleteWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions findOptions
         0: .line 476
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 477
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 478
            aload 3 /* findOptions */
            ldc "find options cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 480
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 4 /* encodedQuery */
        start local 4 // io.vertx.core.json.JsonObject encodedQuery
         4: .line 482
            aload 0 /* this */
            aload 4 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 5 /* bquery */
        start local 5 // org.bson.conversions.Bson bquery
         5: .line 483
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            astore 6 /* foadOptions */
        start local 6 // com.mongodb.client.model.FindOneAndDeleteOptions foadOptions
         6: .line 484
            aload 6 /* foadOptions */
            aload 0 /* this */
            aload 3 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndDeleteOptions.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            pop
         7: .line 485
            aload 6 /* foadOptions */
            aload 0 /* this */
            aload 3 /* findOptions */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokevirtual com.mongodb.client.model.FindOneAndDeleteOptions.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            pop
         8: .line 487
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 7 /* coll */
        start local 7 // com.mongodb.reactivestreams.client.MongoCollection coll
         9: .line 488
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 8 /* promise */
        start local 8 // io.vertx.core.Promise promise
        10: .line 489
            aload 7 /* coll */
            aload 5 /* bquery */
            aload 6 /* foadOptions */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 8 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        11: .line 490
            aload 8 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 8 // io.vertx.core.Promise promise
        end local 7 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 6 // com.mongodb.client.model.FindOneAndDeleteOptions foadOptions
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // io.vertx.core.json.JsonObject encodedQuery
        end local 3 // io.vertx.ext.mongo.FindOptions findOptions
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   12     1    collection  Ljava/lang/String;
            0   12     2         query  Lio/vertx/core/json/JsonObject;
            0   12     3   findOptions  Lio/vertx/ext/mongo/FindOptions;
            4   12     4  encodedQuery  Lio/vertx/core/json/JsonObject;
            5   12     5        bquery  Lorg/bson/conversions/Bson;
            6   12     6   foadOptions  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
            9   12     7          coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
           10   12     8       promise  Lio/vertx/core/Promise<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      collection   
      query        
      findOptions  

  public io.vertx.ext.mongo.MongoClient count(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Long>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 495
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.count:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 496
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 497
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Long;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/Long;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Long;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  public io.vertx.core.Future<java.lang.Long> count(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 502
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 503
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 505
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 3 /* bquery */
        start local 3 // org.bson.conversions.Bson bquery
         3: .line 506
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         4: .line 507
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 5 /* promise */
        start local 5 // io.vertx.core.Promise promise
         5: .line 508
            aload 4 /* coll */
            aload 3 /* bquery */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.countDocuments:(Lorg/bson/conversions/Bson;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 5 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         6: .line 509
            aload 5 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.Promise promise
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // org.bson.conversions.Bson bquery
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1  collection  Ljava/lang/String;
            0    7     2       query  Lio/vertx/core/json/JsonObject;
            3    7     3      bquery  Lorg/bson/conversions/Bson;
            4    7     4        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5    7     5     promise  Lio/vertx/core/Promise<Ljava/lang/Long;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/lang/Long;>;
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.ext.mongo.MongoClient removeDocuments(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientDeleteResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 514
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocuments:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 515
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 516
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            1    3     4         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientDeleteResult> removeDocuments(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 521
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.ext.mongo.MongoClient removeDocumentsWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientDeleteResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 526
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 527
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 528
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      query          
      writeOption    
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientDeleteResult> removeDocumentsWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
         0: .line 533
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 534
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 536
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         3: .line 537
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 5 /* bquery */
        start local 5 // org.bson.conversions.Bson bquery
         4: .line 538
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.Promise promise
         5: .line 539
            aload 4 /* coll */
            aload 5 /* bquery */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.deleteMany:(Lorg/bson/conversions/Bson;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 6 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         6: .line 540
            aload 6 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/ext/mongo/impl/Utils.toMongoClientDeleteResult(Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult; (6)
                  (Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.Promise promise
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1   collection  Ljava/lang/String;
            0    7     2        query  Lio/vertx/core/json/JsonObject;
            0    7     3  writeOption  Lio/vertx/ext/mongo/WriteOption;
            3    7     4         coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4    7     5       bquery  Lorg/bson/conversions/Bson;
            5    7     6      promise  Lio/vertx/core/Promise<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      collection   
      query        
      writeOption  

  public io.vertx.ext.mongo.MongoClient removeDocument(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientDeleteResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 545
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocument:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 546
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 547
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            1    3     4         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientDeleteResult> removeDocument(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
         0: .line 552
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2       query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      query       

  public io.vertx.ext.mongo.MongoClient removeDocumentWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientDeleteResult>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 557
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 558
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 559
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2          query  Lio/vertx/core/json/JsonObject;
            0    3     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            1    3     5         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
               Name  Flags
      collection     
      query          
      writeOption    
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientDeleteResult> removeDocumentWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.WriteOption writeOption
         0: .line 564
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 565
            aload 2 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 567
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* writeOption */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         3: .line 568
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 5 /* bquery */
        start local 5 // org.bson.conversions.Bson bquery
         4: .line 569
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.Promise promise
         5: .line 570
            aload 4 /* coll */
            aload 5 /* bquery */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.deleteOne:(Lorg/bson/conversions/Bson;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 6 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         6: .line 571
            aload 6 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/ext/mongo/impl/Utils.toMongoClientDeleteResult(Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult; (6)
                  (Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.Promise promise
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.WriteOption writeOption
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1   collection  Ljava/lang/String;
            0    7     2        query  Lio/vertx/core/json/JsonObject;
            0    7     3  writeOption  Lio/vertx/ext/mongo/WriteOption;
            3    7     4         coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4    7     5       bquery  Lorg/bson/conversions/Bson;
            5    7     6      promise  Lio/vertx/core/Promise<Lcom/mongodb/client/result/DeleteResult;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      collection   
      query        
      writeOption  

  public io.vertx.ext.mongo.MongoClient bulkWrite(java.lang.String, java.util.List<io.vertx.ext.mongo.BulkOperation>, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientBulkWriteResult>>);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List operations
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 576
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* operations */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.bulkWrite:(Ljava/lang/String;Ljava/util/List;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 577
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 578
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // java.util.List operations
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2     operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;
            1    3     4         future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      operations     
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientBulkWriteResult> bulkWrite(java.lang.String, java.util.List<io.vertx.ext.mongo.BulkOperation>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List operations
         0: .line 583
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* operations */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_BULK_WRITE_OPTIONS:Lio/vertx/ext/mongo/BulkWriteOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.bulkWriteWithOptions:(Ljava/lang/String;Ljava/util/List;Lio/vertx/ext/mongo/BulkWriteOptions;)Lio/vertx/core/Future;
            areturn
        end local 2 // java.util.List operations
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2  operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      operations  

  public io.vertx.ext.mongo.MongoClient bulkWriteWithOptions(java.lang.String, java.util.List<io.vertx.ext.mongo.BulkOperation>, io.vertx.ext.mongo.BulkWriteOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientBulkWriteResult>>);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lio/vertx/ext/mongo/BulkWriteOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List operations
        start local 3 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 588
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* operations */
            aload 3 /* bulkWriteOptions */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.bulkWriteWithOptions:(Ljava/lang/String;Ljava/util/List;Lio/vertx/ext/mongo/BulkWriteOptions;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 589
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 590
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
        end local 2 // java.util.List operations
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1        collection  Ljava/lang/String;
            0    3     2        operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            0    3     3  bulkWriteOptions  Lio/vertx/ext/mongo/BulkWriteOptions;
            0    3     4     resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;
            1    3     5            future  Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;Lio/vertx/ext/mongo/BulkWriteOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
                  Name  Flags
      collection        
      operations        
      bulkWriteOptions  
      resultHandler     

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoClientBulkWriteResult> bulkWriteWithOptions(java.lang.String, java.util.List<io.vertx.ext.mongo.BulkOperation>, io.vertx.ext.mongo.BulkWriteOptions);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lio/vertx/ext/mongo/BulkWriteOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List operations
        start local 3 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
         0: .line 595
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 596
            aload 2 /* operations */
            ldc "operations cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 597
            aload 3 /* bulkWriteOptions */
            ldc "bulkWriteOptions cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 598
            aload 0 /* this */
            aload 1 /* collection */
            aload 3 /* bulkWriteOptions */
            invokevirtual io.vertx.ext.mongo.BulkWriteOptions.getWriteOption:()Lio/vertx/ext/mongo/WriteOption;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         4: .line 599
            aload 0 /* this */
            aload 2 /* operations */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertBulkOperations:(Ljava/util/List;)Ljava/util/List;
            astore 5 /* bulkOperations */
        start local 5 // java.util.List bulkOperations
         5: .line 600
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
            aload 3 /* bulkWriteOptions */
            invokevirtual io.vertx.ext.mongo.BulkWriteOptions.isOrdered:()Z
            invokevirtual com.mongodb.client.model.BulkWriteOptions.ordered:(Z)Lcom/mongodb/client/model/BulkWriteOptions;
            astore 6 /* options */
        start local 6 // com.mongodb.client.model.BulkWriteOptions options
         6: .line 601
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 7 /* promise */
        start local 7 // io.vertx.core.Promise promise
         7: .line 602
            aload 4 /* coll */
            aload 5 /* bulkOperations */
            aload 6 /* options */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 7 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         8: .line 603
            aload 7 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/ext/mongo/impl/Utils.toMongoClientBulkWriteResult(Lcom/mongodb/bulk/BulkWriteResult;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult; (6)
                  (Lcom/mongodb/bulk/BulkWriteResult;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 7 // io.vertx.core.Promise promise
        end local 6 // com.mongodb.client.model.BulkWriteOptions options
        end local 5 // java.util.List bulkOperations
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
        end local 2 // java.util.List operations
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    9     1        collection  Ljava/lang/String;
            0    9     2        operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            0    9     3  bulkWriteOptions  Lio/vertx/ext/mongo/BulkWriteOptions;
            4    9     4              coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5    9     5    bulkOperations  Ljava/util/List<Lcom/mongodb/client/model/WriteModel<Lio/vertx/core/json/JsonObject;>;>;
            6    9     6           options  Lcom/mongodb/client/model/BulkWriteOptions;
            7    9     7           promise  Lio/vertx/core/Promise<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;Lio/vertx/ext/mongo/BulkWriteOptions;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
                  Name  Flags
      collection        
      operations        
      bulkWriteOptions  

  private java.util.List<com.mongodb.client.model.WriteModel<io.vertx.core.json.JsonObject>> convertBulkOperations(java.util.List<io.vertx.ext.mongo.BulkOperation>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.util.List operations
         0: .line 607
            new java.util.ArrayList
            dup
            aload 1 /* operations */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 608
            aload 1 /* operations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 27
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.mongo.BulkOperation
            astore 3 /* bulkOperation */
        start local 3 // io.vertx.ext.mongo.BulkOperation bulkOperation
         3: .line 609
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.$SWITCH_TABLE$io$vertx$ext$mongo$BulkOperation$BulkOperationType:()[I
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getType:()Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            invokevirtual io.vertx.ext.mongo.BulkOperation$BulkOperationType.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 16
                    2: 12
                    3: 10
                    4: 4
              default: 26
          }
         4: .line 611
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.util.List java.util.List io.vertx.ext.mongo.BulkOperation java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getFilter:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            astore 5 /* bsonFilter */
        start local 5 // org.bson.conversions.Bson bsonFilter
         5: .line 612
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isMulti:()Z
            ifeq 8
         6: .line 613
            aload 2 /* result */
            new com.mongodb.client.model.DeleteManyModel
            dup
            aload 5 /* bsonFilter */
            invokespecial com.mongodb.client.model.DeleteManyModel.<init>:(Lorg/bson/conversions/Bson;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 614
            goto 27
         8: .line 615
      StackMap locals: org.bson.conversions.Bson
      StackMap stack:
            aload 2 /* result */
            new com.mongodb.client.model.DeleteOneModel
            dup
            aload 5 /* bsonFilter */
            invokespecial com.mongodb.client.model.DeleteOneModel.<init>:(Lorg/bson/conversions/Bson;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 617
            goto 27
        end local 5 // org.bson.conversions.Bson bsonFilter
        10: .line 619
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            new com.mongodb.client.model.InsertOneModel
            dup
            aload 0 /* this */
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getDocument:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokespecial com.mongodb.client.model.InsertOneModel.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 620
            goto 27
        12: .line 622
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            new com.mongodb.client.model.ReplaceOneModel
            dup
            aload 0 /* this */
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getFilter:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getDocument:()Lio/vertx/core/json/JsonObject;
        13: .line 623
            new com.mongodb.client.model.ReplaceOptions
            dup
            invokespecial com.mongodb.client.model.ReplaceOptions.<init>:()V
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isUpsert:()Z
            invokevirtual com.mongodb.client.model.ReplaceOptions.upsert:(Z)Lcom/mongodb/client/model/ReplaceOptions;
            invokespecial com.mongodb.client.model.ReplaceOneModel.<init>:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/ReplaceOptions;)V
        14: .line 622
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 624
            goto 27
        16: .line 626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getFilter:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            astore 6 /* filter */
        start local 6 // org.bson.conversions.Bson filter
        17: .line 627
            aload 0 /* this */
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.getDocument:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            astore 7 /* document */
        start local 7 // org.bson.conversions.Bson document
        18: .line 628
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
        19: .line 629
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isUpsert:()Z
            invokevirtual com.mongodb.client.model.UpdateOptions.upsert:(Z)Lcom/mongodb/client/model/UpdateOptions;
        20: .line 628
            astore 8 /* updateOptions */
        start local 8 // com.mongodb.client.model.UpdateOptions updateOptions
        21: .line 630
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isMulti:()Z
            ifeq 24
        22: .line 631
            aload 2 /* result */
            new com.mongodb.client.model.UpdateManyModel
            dup
            aload 6 /* filter */
            aload 7 /* document */
            aload 8 /* updateOptions */
            invokespecial com.mongodb.client.model.UpdateManyModel.<init>:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        23: .line 632
            goto 27
        24: .line 633
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.util.List java.util.List io.vertx.ext.mongo.BulkOperation java.util.Iterator top org.bson.conversions.Bson org.bson.conversions.Bson com.mongodb.client.model.UpdateOptions
      StackMap stack:
            aload 2 /* result */
            new com.mongodb.client.model.UpdateOneModel
            dup
            aload 6 /* filter */
            aload 7 /* document */
            aload 8 /* updateOptions */
            invokespecial com.mongodb.client.model.UpdateOneModel.<init>:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 635
            goto 27
        end local 8 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 7 // org.bson.conversions.Bson document
        end local 6 // org.bson.conversions.Bson filter
        26: .line 637
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.util.List java.util.List io.vertx.ext.mongo.BulkOperation java.util.Iterator
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown bulk operation type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* bulkOperation */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // io.vertx.ext.mongo.BulkOperation bulkOperation
        27: .line 608
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        28: .line 640
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // java.util.List operations
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   29     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   29     1     operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            1   29     2         result  Ljava/util/List<Lcom/mongodb/client/model/WriteModel<Lio/vertx/core/json/JsonObject;>;>;
            3   27     3  bulkOperation  Lio/vertx/ext/mongo/BulkOperation;
            5   10     5     bsonFilter  Lorg/bson/conversions/Bson;
           17   26     6         filter  Lorg/bson/conversions/Bson;
           18   26     7       document  Lorg/bson/conversions/Bson;
           21   26     8  updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    Signature: (Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;)Ljava/util/List<Lcom/mongodb/client/model/WriteModel<Lio/vertx/core/json/JsonObject;>;>;
    MethodParameters:
            Name  Flags
      operations  

  public io.vertx.ext.mongo.MongoClient createCollection(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collectionName
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 645
            aload 0 /* this */
            aload 1 /* collectionName */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createCollection:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* future */
        start local 3 // io.vertx.core.Future future
         1: .line 646
            aload 3 /* future */
            aload 2 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 647
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future future
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String collectionName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  collectionName  Ljava/lang/String;
            0    3     2   resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     3          future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
                Name  Flags
      collectionName  
      resultHandler   

  public io.vertx.core.Future<java.lang.Void> createCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collectionName
         0: .line 652
            aload 1 /* collectionName */
            ldc "collectionName cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 654
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         2: .line 655
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            getfield io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.db:Lcom/mongodb/reactivestreams/client/MongoDatabase;
            aload 1 /* collectionName */
            invokeinterface com.mongodb.reactivestreams.client.MongoDatabase.createCollection:(Ljava/lang/String;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 2 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         3: .line 656
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String collectionName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    4     1  collectionName  Ljava/lang/String;
            2    4     2         promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
                Name  Flags
      collectionName  

  public io.vertx.ext.mongo.MongoClient getCollections(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<java.lang.String>>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 661
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollections:()Lio/vertx/core/Future;
            astore 2 /* future */
        start local 2 // io.vertx.core.Future future
         1: .line 662
            aload 2 /* future */
            aload 1 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 663
            aload 0 /* this */
            areturn
        end local 2 // io.vertx.core.Future future
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Ljava/lang/String;>;>;>;
            1    3     2         future  Lio/vertx/core/Future<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Ljava/lang/String;>;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<java.util.List<java.lang.String>> getCollections();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
         0: .line 668
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         1: .line 669
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            getfield io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.db:Lcom/mongodb/reactivestreams/client/MongoDatabase;
            invokeinterface com.mongodb.reactivestreams.client.MongoDatabase.listCollectionNames:()Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.BufferingSubscriber
            dup
            aload 1 /* promise */
            invokespecial io.vertx.ext.mongo.impl.BufferingSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         2: .line 670
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            1    3     1  promise  Lio/vertx/core/Promise<Ljava/util/List<Ljava/lang/String;>;>;
    Signature: ()Lio/vertx/core/Future<Ljava/util/List<Ljava/lang/String;>;>;

  public io.vertx.ext.mongo.MongoClient dropCollection(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 675
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.dropCollection:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* future */
        start local 3 // io.vertx.core.Future future
         1: .line 676
            aload 3 /* future */
            aload 2 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 677
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future future
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     3         future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> dropCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
         0: .line 682
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 684
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 2 /* coll */
        start local 2 // com.mongodb.reactivestreams.client.MongoCollection coll
         2: .line 685
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 3 /* promise */
        start local 3 // io.vertx.core.Promise promise
         3: .line 686
            aload 2 /* coll */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.drop:()Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 3 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         4: .line 687
            aload 3 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.Promise promise
        end local 2 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    5     1  collection  Ljava/lang/String;
            2    5     2        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            3    5     3     promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      collection  

  public io.vertx.ext.mongo.MongoClient createIndex(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject key
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 692
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* key */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createIndex:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 693
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 694
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject key
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2            key  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      key            
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> createIndex(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject key
         0: .line 699
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* key */
            new io.vertx.ext.mongo.IndexOptions
            dup
            invokespecial io.vertx.ext.mongo.IndexOptions.<init>:()V
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createIndexWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.json.JsonObject key
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2         key  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      collection  
      key         

  public io.vertx.ext.mongo.MongoClient createIndexWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.IndexOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject key
        start local 3 // io.vertx.ext.mongo.IndexOptions options
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 704
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* key */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createIndexWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 705
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 706
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // io.vertx.ext.mongo.IndexOptions options
        end local 2 // io.vertx.core.json.JsonObject key
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2            key  Lio/vertx/core/json/JsonObject;
            0    3     3        options  Lio/vertx/ext/mongo/IndexOptions;
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     5         future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      key            
      options        
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> createIndexWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.IndexOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject key
        start local 3 // io.vertx.ext.mongo.IndexOptions options
         0: .line 711
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 712
            aload 2 /* key */
            ldc "fieldName cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 714
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         3: .line 715
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.mongoIndexOptions:(Lio/vertx/ext/mongo/IndexOptions;)Lcom/mongodb/client/model/IndexOptions;
            astore 5 /* driverOpts */
        start local 5 // com.mongodb.client.model.IndexOptions driverOpts
         4: .line 716
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.Promise promise
         5: .line 717
            aload 4 /* coll */
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            aload 5 /* driverOpts */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 6 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         6: .line 718
            aload 6 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.Promise promise
        end local 5 // com.mongodb.client.model.IndexOptions driverOpts
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.IndexOptions options
        end local 2 // io.vertx.core.json.JsonObject key
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1  collection  Ljava/lang/String;
            0    7     2         key  Lio/vertx/core/json/JsonObject;
            0    7     3     options  Lio/vertx/ext/mongo/IndexOptions;
            3    7     4        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4    7     5  driverOpts  Lcom/mongodb/client/model/IndexOptions;
            5    7     6     promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      collection  
      key         
      options     

  public io.vertx.ext.mongo.MongoClient createIndexes(java.lang.String, java.util.List<io.vertx.ext.mongo.IndexModel>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List indexes
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 723
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* indexes */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createIndexes:(Ljava/lang/String;Ljava/util/List;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 724
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 725
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // java.util.List indexes
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2        indexes  Ljava/util/List<Lio/vertx/ext/mongo/IndexModel;>;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/IndexModel;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      indexes        
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> createIndexes(java.lang.String, java.util.List<io.vertx.ext.mongo.IndexModel>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.util.List indexes
         0: .line 730
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 732
            aload 2 /* indexes */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;)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/ext/mongo/impl/MongoClientImpl.lambda$11(Lio/vertx/ext/mongo/IndexModel;)Lcom/mongodb/client/model/IndexModel; (7)
                  (Lio/vertx/ext/mongo/IndexModel;)Lcom/mongodb/client/model/IndexModel;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 736
            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
         3: .line 732
            astore 3 /* transformIndexes */
        start local 3 // java.util.List transformIndexes
         4: .line 738
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.Promise promise
         5: .line 739
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            aload 3 /* transformIndexes */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.createIndexes:(Ljava/util/List;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 4 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         6: .line 740
            aload 4 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.Promise promise
        end local 3 // java.util.List transformIndexes
        end local 2 // java.util.List indexes
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1        collection  Ljava/lang/String;
            0    7     2           indexes  Ljava/util/List<Lio/vertx/ext/mongo/IndexModel;>;
            4    7     3  transformIndexes  Ljava/util/List<Lcom/mongodb/client/model/IndexModel;>;
            5    7     4           promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/mongo/IndexModel;>;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      collection  
      indexes     

  private static org.bson.conversions.Bson toBson(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.json.JsonObject json
         0: .line 744
            aload 0 /* json */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* json */
            invokevirtual io.vertx.core.json.JsonObject.encode:()Ljava/lang/String;
            invokestatic org.bson.BsonDocument.parse:(Ljava/lang/String;)Lorg/bson/BsonDocument;
      StackMap locals:
      StackMap stack: org.bson.BsonDocument
         2: areturn
        end local 0 // io.vertx.core.json.JsonObject json
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  json  Lio/vertx/core/json/JsonObject;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
      Name  Flags
      json  

  public io.vertx.ext.mongo.MongoClient listIndexes(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 749
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.listIndexes:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* future */
        start local 3 // io.vertx.core.Future future
         1: .line 750
            aload 3 /* future */
            aload 2 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 751
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future future
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            1    3     3         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonArray> listIndexes(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
         0: .line 756
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 757
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 2 /* coll */
        start local 2 // com.mongodb.reactivestreams.client.MongoCollection coll
         2: .line 758
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 3 /* promise */
        start local 3 // io.vertx.core.Promise promise
         3: .line 759
            aload 2 /* coll */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.listIndexes:(Ljava/lang/Class;)Lcom/mongodb/reactivestreams/client/ListIndexesPublisher;
            new io.vertx.ext.mongo.impl.BufferingSubscriber
            dup
            aload 3 /* promise */
            invokespecial io.vertx.ext.mongo.impl.BufferingSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface com.mongodb.reactivestreams.client.ListIndexesPublisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         4: .line 760
            aload 3 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            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/core/json/JsonArray.<init>(Ljava/util/List;)V (8)
                  (Ljava/util/List;)Lio/vertx/core/json/JsonArray;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.Promise promise
        end local 2 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    5     1  collection  Ljava/lang/String;
            2    5     2        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            3    5     3     promise  Lio/vertx/core/Promise<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    MethodParameters:
            Name  Flags
      collection  

  public io.vertx.ext.mongo.MongoClient dropIndex(java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String indexName
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 765
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* indexName */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.dropIndex:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 766
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 767
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // java.lang.String indexName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     collection  Ljava/lang/String;
            0    3     2      indexName  Ljava/lang/String;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     4         future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      collection     
      indexName      
      resultHandler  

  public io.vertx.core.Future<java.lang.Void> dropIndex(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String indexName
         0: .line 772
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 773
            aload 2 /* indexName */
            ldc "indexName cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 774
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 3 /* coll */
        start local 3 // com.mongodb.reactivestreams.client.MongoCollection coll
         3: .line 775
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.Promise promise
         4: .line 776
            aload 3 /* coll */
            aload 2 /* indexName */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.dropIndex:(Ljava/lang/String;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.CompletionSubscriber
            dup
            aload 4 /* promise */
            invokespecial io.vertx.ext.mongo.impl.CompletionSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         5: .line 777
            aload 4 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.Promise promise
        end local 3 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 2 // java.lang.String indexName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    6     1  collection  Ljava/lang/String;
            0    6     2   indexName  Ljava/lang/String;
            3    6     3        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4    6     4     promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      collection  
      indexName   

  public io.vertx.ext.mongo.MongoClient runCommand(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonObject>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String commandName
        start local 2 // io.vertx.core.json.JsonObject command
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 782
            aload 0 /* this */
            aload 1 /* commandName */
            aload 2 /* command */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.runCommand:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 4 /* future */
        start local 4 // io.vertx.core.Future future
         1: .line 783
            aload 4 /* future */
            aload 3 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 784
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Future future
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // io.vertx.core.json.JsonObject command
        end local 1 // java.lang.String commandName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1    commandName  Ljava/lang/String;
            0    3     2        command  Lio/vertx/core/json/JsonObject;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            1    3     4         future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      commandName    
      command        
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.json.JsonObject> runCommand(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String commandName
        start local 2 // io.vertx.core.json.JsonObject command
         0: .line 789
            aload 1 /* commandName */
            ldc "commandName cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 790
            aload 2 /* command */
            ldc "command cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 793
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 3 /* json */
        start local 3 // io.vertx.core.json.JsonObject json
         3: .line 794
            aload 2 /* command */
            aload 1 /* commandName */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 4 /* commandVal */
        start local 4 // java.lang.Object commandVal
         4: .line 795
            aload 4 /* commandVal */
            ifnonnull 6
         5: .line 796
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "commandBody does not contain key for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* commandName */
            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 798
      StackMap locals: io.vertx.core.json.JsonObject java.lang.Object
      StackMap stack:
            aload 3 /* json */
            aload 1 /* commandName */
            aload 4 /* commandVal */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         7: .line 799
            aload 2 /* command */
            aload 1 /* commandName */
            aload 3 /* json */
            invokedynamic accept(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)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/ext/mongo/impl/MongoClientImpl.lambda$13(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Ljava/util/Map$Entry;)V (6)
                  (Ljava/util/Map$Entry;)V
            invokevirtual io.vertx.core.json.JsonObject.forEach:(Ljava/util/function/Consumer;)V
         8: .line 805
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 5 /* promise */
        start local 5 // io.vertx.core.Promise promise
         9: .line 806
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            getfield io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.db:Lcom/mongodb/reactivestreams/client/MongoDatabase;
            aload 0 /* this */
            aload 3 /* json */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.reactivestreams.client.MongoDatabase.runCommand:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lorg/reactivestreams/Publisher;
            new io.vertx.ext.mongo.impl.SingleResultSubscriber
            dup
            aload 5 /* promise */
            invokespecial io.vertx.ext.mongo.impl.SingleResultSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
        10: .line 807
            aload 5 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.Promise promise
        end local 4 // java.lang.Object commandVal
        end local 3 // io.vertx.core.json.JsonObject json
        end local 2 // io.vertx.core.json.JsonObject command
        end local 1 // java.lang.String commandName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   11     1  commandName  Ljava/lang/String;
            0   11     2      command  Lio/vertx/core/json/JsonObject;
            3   11     3         json  Lio/vertx/core/json/JsonObject;
            4   11     4   commandVal  Ljava/lang/Object;
            9   11     5      promise  Lio/vertx/core/Promise<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN, location=[TYPE_ARGUMENT(0)]
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      commandName  
      command      

  public io.vertx.ext.mongo.MongoClient distinct(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 812
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.distinct:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            astore 5 /* future */
        start local 5 // io.vertx.core.Future future
         1: .line 813
            aload 5 /* future */
            aload 4 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 814
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.core.Future future
        end local 4 // io.vertx.core.Handler resultHandler
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1       collection  Ljava/lang/String;
            0    3     2        fieldName  Ljava/lang/String;
            0    3     3  resultClassname  Ljava/lang/String;
            0    3     4    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            1    3     5           future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      resultHandler    

  public io.vertx.core.Future<io.vertx.core.json.JsonArray> distinct(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
         0: .line 819
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.distinctWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1       collection  Ljava/lang/String;
            0    1     2        fieldName  Ljava/lang/String;
            0    1     3  resultClassname  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  

  public io.vertx.ext.mongo.MongoClient distinctWithQuery(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.json.JsonObject query
        start local 5 // io.vertx.core.Handler resultHandler
         0: .line 824
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            aload 4 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.distinctWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
            astore 6 /* future */
        start local 6 // io.vertx.core.Future future
         1: .line 825
            aload 6 /* future */
            aload 5 /* resultHandler */
            invokestatic io.vertx.ext.mongo.impl.Utils.setHandler:(Lio/vertx/core/Future;Lio/vertx/core/Handler;)V
         2: .line 826
            aload 0 /* this */
            areturn
        end local 6 // io.vertx.core.Future future
        end local 5 // io.vertx.core.Handler resultHandler
        end local 4 // io.vertx.core.json.JsonObject query
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1       collection  Ljava/lang/String;
            0    3     2        fieldName  Ljava/lang/String;
            0    3     3  resultClassname  Ljava/lang/String;
            0    3     4            query  Lio/vertx/core/json/JsonObject;
            0    3     5    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            1    3     6           future  Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            
      resultHandler    

  public io.vertx.core.Future<io.vertx.core.json.JsonArray> distinctWithQuery(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.json.JsonObject query
         0: .line 832
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 5 /* promise */
        start local 5 // io.vertx.core.impl.future.PromiseInternal promise
         1: .line 833
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            aload 4 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findDistinctValuesWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lcom/mongodb/reactivestreams/client/DistinctPublisher;
            new io.vertx.ext.mongo.impl.BufferingSubscriber
            dup
            aload 5 /* promise */
            invokespecial io.vertx.ext.mongo.impl.BufferingSubscriber.<init>:(Lio/vertx/core/Promise;)V
            invokeinterface com.mongodb.reactivestreams.client.DistinctPublisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
         2: .line 834
            aload 5 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            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/core/json/JsonArray.<init>(Ljava/util/List;)V (8)
                  (Ljava/util/List;)Lio/vertx/core/json/JsonArray;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
         3: areturn
        end local 5 // io.vertx.core.impl.future.PromiseInternal promise
         4: .line 835
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 5 /* e */
        start local 5 // java.lang.ClassNotFoundException e
         5: .line 836
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            aload 5 /* e */
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            areturn
        end local 5 // java.lang.ClassNotFoundException e
        end local 4 // io.vertx.core.json.JsonObject query
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    6     1       collection  Ljava/lang/String;
            0    6     2        fieldName  Ljava/lang/String;
            0    6     3  resultClassname  Ljava/lang/String;
            0    6     4            query  Lio/vertx/core/json/JsonObject;
            1    4     5          promise  Lio/vertx/core/impl/future/PromiseInternal<Ljava/util/List<Ljava/lang/Object;>;>;
            5    6     5                e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/Future<Lio/vertx/core/json/JsonArray;>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> distinctBatch(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
         0: .line 842
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.distinctBatchWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/streams/ReadStream;
            areturn
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1       collection  Ljava/lang/String;
            0    1     2        fieldName  Ljava/lang/String;
            0    1     3  resultClassname  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> distinctBatchWithQuery(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.json.JsonObject query
         0: .line 847
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            aload 4 /* query */
            bipush 20
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.distinctBatchWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;I)Lio/vertx/core/streams/ReadStream;
            areturn
        end local 4 // io.vertx.core.json.JsonObject query
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1       collection  Ljava/lang/String;
            0    1     2        fieldName  Ljava/lang/String;
            0    1     3  resultClassname  Ljava/lang/String;
            0    1     4            query  Lio/vertx/core/json/JsonObject;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> distinctBatchWithQuery(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;I)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.json.JsonObject query
        start local 5 // int batchSize
         0: .line 853
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* fieldName */
            aload 3 /* resultClassname */
            aload 4 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findDistinctValuesWithQuery:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lcom/mongodb/reactivestreams/client/DistinctPublisher;
            astore 6 /* distinctValuesWithQuery */
        start local 6 // com.mongodb.reactivestreams.client.DistinctPublisher distinctValuesWithQuery
         1: .line 854
            new io.vertx.ext.mongo.impl.PublisherAdapter
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            aload 6 /* distinctValuesWithQuery */
            iload 5 /* batchSize */
            invokespecial io.vertx.ext.mongo.impl.PublisherAdapter.<init>:(Lio/vertx/core/impl/ContextInternal;Lorg/reactivestreams/Publisher;I)V
            astore 7 /* readStream */
        start local 7 // io.vertx.ext.mongo.impl.PublisherAdapter readStream
         2: .line 855
            new io.vertx.ext.mongo.impl.MappingStream
            dup
            aload 7 /* readStream */
            aload 2 /* fieldName */
            invokedynamic apply(Ljava/lang/String;)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/ext/mongo/impl/MongoClientImpl.lambda$15(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject; (6)
                  (Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokespecial io.vertx.ext.mongo.impl.MappingStream.<init>:(Lio/vertx/core/streams/ReadStream;Ljava/util/function/Function;)V
         3: areturn
        end local 7 // io.vertx.ext.mongo.impl.PublisherAdapter readStream
        end local 6 // com.mongodb.reactivestreams.client.DistinctPublisher distinctValuesWithQuery
         4: .line 856
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 6 /* e */
        start local 6 // java.lang.ClassNotFoundException e
         5: .line 857
            new io.vertx.ext.mongo.impl.FailedStream
            dup
            aload 6 /* e */
            invokespecial io.vertx.ext.mongo.impl.FailedStream.<init>:(Ljava/lang/ClassNotFoundException;)V
            areturn
        end local 6 // java.lang.ClassNotFoundException e
        end local 5 // int batchSize
        end local 4 // io.vertx.core.json.JsonObject query
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    6     1               collection  Ljava/lang/String;
            0    6     2                fieldName  Ljava/lang/String;
            0    6     3          resultClassname  Ljava/lang/String;
            0    6     4                    query  Lio/vertx/core/json/JsonObject;
            0    6     5                batchSize  I
            1    4     6  distinctValuesWithQuery  Lcom/mongodb/reactivestreams/client/DistinctPublisher<*>;
            2    4     7               readStream  Lio/vertx/ext/mongo/impl/PublisherAdapter<*>;
            5    6     6                        e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;I)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            
      batchSize        

  public io.vertx.ext.mongo.MongoClient createDefaultGridFsBucketService(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoGridFsClient>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 863
            aload 0 /* this */
            ldc "fs"
            aload 1 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createGridFsBucketService:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            areturn
        end local 1 // io.vertx.core.Handler resultHandler
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoGridFsClient;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoGridFsClient;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoGridFsClient> createDefaultGridFsBucketService();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
         0: .line 868
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         1: .line 869
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createDefaultGridFsBucketService:(Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         2: .line 870
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            1    3     1  promise  Lio/vertx/core/Promise<Lio/vertx/ext/mongo/MongoGridFsClient;>;
    Signature: ()Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoGridFsClient;>;

  public io.vertx.ext.mongo.MongoClient createGridFsBucketService(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoGridFsClient>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String bucketName
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 875
            new io.vertx.ext.mongo.impl.MongoGridFsClientImpl
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* bucketName */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getGridFSBucket:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/gridfs/GridFSBucket;
            invokespecial io.vertx.ext.mongo.impl.MongoGridFsClientImpl.<init>:(Lio/vertx/core/impl/VertxInternal;Lio/vertx/ext/mongo/impl/MongoClientImpl;Lcom/mongodb/reactivestreams/client/gridfs/GridFSBucket;)V
            astore 3 /* impl */
        start local 3 // io.vertx.ext.mongo.impl.MongoGridFsClientImpl impl
         1: .line 876
            aload 2 /* resultHandler */
            aload 3 /* impl */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 877
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.ext.mongo.impl.MongoGridFsClientImpl impl
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String bucketName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1     bucketName  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoGridFsClient;>;>;
            1    3     3           impl  Lio/vertx/ext/mongo/impl/MongoGridFsClientImpl;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoGridFsClient;>;>;)Lio/vertx/ext/mongo/MongoClient;
    MethodParameters:
               Name  Flags
      bucketName     
      resultHandler  

  public io.vertx.core.Future<io.vertx.ext.mongo.MongoGridFsClient> createGridFsBucketService(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String bucketName
         0: .line 882
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 883
            aload 0 /* this */
            aload 1 /* bucketName */
            aload 2 /* promise */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createGridFsBucketService:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         2: .line 884
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String bucketName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  bucketName  Ljava/lang/String;
            1    3     2     promise  Lio/vertx/core/Promise<Lio/vertx/ext/mongo/MongoGridFsClient;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/ext/mongo/MongoGridFsClient;>;
    MethodParameters:
            Name  Flags
      bucketName  

  private com.mongodb.reactivestreams.client.gridfs.GridFSBucket getGridFSBucket(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/gridfs/GridFSBucket;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String bucketName
         0: .line 888
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            getfield io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.db:Lcom/mongodb/reactivestreams/client/MongoDatabase;
            aload 1 /* bucketName */
            invokestatic com.mongodb.reactivestreams.client.gridfs.GridFSBuckets.create:(Lcom/mongodb/reactivestreams/client/MongoDatabase;Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/gridfs/GridFSBucket;
            areturn
        end local 1 // java.lang.String bucketName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  bucketName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      bucketName  

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> aggregate(java.lang.String, io.vertx.core.json.JsonArray);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonArray pipeline
         0: .line 893
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* pipeline */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_AGGREGATE_OPTIONS:Lio/vertx/ext/mongo/AggregateOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.aggregateWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lio/vertx/core/streams/ReadStream;
            areturn
        end local 2 // io.vertx.core.json.JsonArray pipeline
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  collection  Ljava/lang/String;
            0    1     2    pipeline  Lio/vertx/core/json/JsonArray;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  final
      pipeline    final

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> aggregateWithOptions(java.lang.String, io.vertx.core.json.JsonArray, io.vertx.ext.mongo.AggregateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonArray pipeline
        start local 3 // io.vertx.ext.mongo.AggregateOptions options
         0: .line 898
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* pipeline */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.doAggregate:(Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
            astore 4 /* view */
        start local 4 // com.mongodb.reactivestreams.client.AggregatePublisher view
         1: .line 899
            new io.vertx.ext.mongo.impl.PublisherAdapter
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            aload 4 /* view */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            invokespecial io.vertx.ext.mongo.impl.PublisherAdapter.<init>:(Lio/vertx/core/impl/ContextInternal;Lorg/reactivestreams/Publisher;I)V
            areturn
        end local 4 // com.mongodb.reactivestreams.client.AggregatePublisher view
        end local 3 // io.vertx.ext.mongo.AggregateOptions options
        end local 2 // io.vertx.core.json.JsonArray pipeline
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1  collection  Ljava/lang/String;
            0    2     2    pipeline  Lio/vertx/core/json/JsonArray;
            0    2     3     options  Lio/vertx/ext/mongo/AggregateOptions;
            1    2     4        view  Lcom/mongodb/reactivestreams/client/AggregatePublisher<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  final
      pipeline    final
      options     final

  private com.mongodb.reactivestreams.client.DistinctPublisher<?> findDistinctValuesWithQuery(java.lang.String, java.lang.String, java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lcom/mongodb/reactivestreams/client/DistinctPublisher;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // java.lang.String fieldName
        start local 3 // java.lang.String resultClassname
        start local 4 // io.vertx.core.json.JsonObject query
         0: .line 903
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 904
            aload 2 /* fieldName */
            ldc "fieldName cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 905
            aload 4 /* query */
            ldc "query cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 907
            aload 0 /* this */
            aload 4 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 5 /* encodedQuery */
        start local 5 // io.vertx.core.json.JsonObject encodedQuery
         4: .line 909
            aload 0 /* this */
            aload 5 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 6 /* bquery */
        start local 6 // org.bson.conversions.Bson bquery
         5: .line 911
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 7 /* mongoCollection */
        start local 7 // com.mongodb.reactivestreams.client.MongoCollection mongoCollection
         6: .line 912
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 3 /* resultClassname */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 8 /* resultClass */
        start local 8 // java.lang.Class resultClass
         7: .line 913
            aload 7 /* mongoCollection */
            aload 2 /* fieldName */
            aload 6 /* bquery */
            aload 8 /* resultClass */
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.distinct:(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/reactivestreams/client/DistinctPublisher;
            areturn
        end local 8 // java.lang.Class resultClass
        end local 7 // com.mongodb.reactivestreams.client.MongoCollection mongoCollection
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // io.vertx.core.json.JsonObject encodedQuery
        end local 4 // io.vertx.core.json.JsonObject query
        end local 3 // java.lang.String resultClassname
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    8     1       collection  Ljava/lang/String;
            0    8     2        fieldName  Ljava/lang/String;
            0    8     3  resultClassname  Ljava/lang/String;
            0    8     4            query  Lio/vertx/core/json/JsonObject;
            4    8     5     encodedQuery  Lio/vertx/core/json/JsonObject;
            5    8     6           bquery  Lorg/bson/conversions/Bson;
            6    8     7  mongoCollection  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            7    8     8      resultClass  Ljava/lang/Class<*>;
    Exceptions:
      throws java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lcom/mongodb/reactivestreams/client/DistinctPublisher<*>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            

  private com.mongodb.reactivestreams.client.AggregatePublisher<io.vertx.core.json.JsonObject> doAggregate(java.lang.String, io.vertx.core.json.JsonArray, io.vertx.ext.mongo.AggregateOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonArray pipeline
        start local 3 // io.vertx.ext.mongo.AggregateOptions aggregateOptions
         0: .line 917
            aload 1 /* collection */
            ldc "collection cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 918
            aload 2 /* pipeline */
            ldc "pipeline cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 919
            aload 3 /* aggregateOptions */
            ldc "aggregateOptions cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 920
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         4: .line 921
            new java.util.ArrayList
            dup
            aload 2 /* pipeline */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* bpipeline */
        start local 5 // java.util.List bpipeline
         5: .line 922
            aload 2 /* pipeline */
            invokevirtual io.vertx.core.json.JsonArray.getList:()Ljava/util/List;
            aload 0 /* this */
            aload 5 /* bpipeline */
            invokedynamic accept(Lio/vertx/ext/mongo/impl/MongoClientImpl;Ljava/util/List;)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/ext/mongo/impl/MongoClientImpl.lambda$16(Ljava/util/List;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         6: .line 923
            aload 4 /* coll */
            aload 5 /* bpipeline */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.aggregate:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
            astore 6 /* aggregate */
        start local 6 // com.mongodb.reactivestreams.client.AggregatePublisher aggregate
         7: .line 925
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            iconst_m1
            if_icmpeq 9
         8: .line 926
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            invokeinterface com.mongodb.reactivestreams.client.AggregatePublisher.batchSize:(I)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
            pop
         9: .line 928
      StackMap locals: com.mongodb.reactivestreams.client.MongoCollection java.util.List com.mongodb.reactivestreams.client.AggregatePublisher
      StackMap stack:
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getMaxTime:()J
            lconst_0
            lcmp
            ifle 11
        10: .line 929
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getMaxTime:()J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.mongodb.reactivestreams.client.AggregatePublisher.maxTime:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
            pop
        11: .line 931
      StackMap locals:
      StackMap stack:
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getAllowDiskUse:()Ljava/lang/Boolean;
            ifnull 13
        12: .line 932
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getAllowDiskUse:()Ljava/lang/Boolean;
            invokeinterface com.mongodb.reactivestreams.client.AggregatePublisher.allowDiskUse:(Ljava/lang/Boolean;)Lcom/mongodb/reactivestreams/client/AggregatePublisher;
            pop
        13: .line 934
      StackMap locals:
      StackMap stack:
            aload 6 /* aggregate */
            areturn
        end local 6 // com.mongodb.reactivestreams.client.AggregatePublisher aggregate
        end local 5 // java.util.List bpipeline
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.AggregateOptions aggregateOptions
        end local 2 // io.vertx.core.json.JsonArray pipeline
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   14     1        collection  Ljava/lang/String;
            0   14     2          pipeline  Lio/vertx/core/json/JsonArray;
            0   14     3  aggregateOptions  Lio/vertx/ext/mongo/AggregateOptions;
            4   14     4              coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5   14     5         bpipeline  Ljava/util/List<Lorg/bson/conversions/Bson;>;
            7   14     6         aggregate  Lcom/mongodb/reactivestreams/client/AggregatePublisher<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lcom/mongodb/reactivestreams/client/AggregatePublisher<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                  Name  Flags
      collection        final
      pipeline          final
      aggregateOptions  final

  io.vertx.core.json.JsonObject encodeKeyWhenUseObjectId(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 938
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifne 1
            aload 1 /* json */
            areturn
         1: .line 940
      StackMap locals:
      StackMap stack:
            aload 1 /* json */
            ldc "_id"
            aconst_null
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* idString */
        start local 2 // java.lang.Object idString
         2: .line 941
            aload 2 /* idString */
            instanceof java.lang.String
            ifeq 4
            aload 2 /* idString */
            checkcast java.lang.String
            invokestatic org.bson.types.ObjectId.isValid:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 942
            aload 1 /* json */
            ldc "_id"
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "$oid"
            aload 2 /* idString */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         4: .line 945
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* json */
            areturn
        end local 2 // java.lang.Object idString
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    5     1      json  Lio/vertx/core/json/JsonObject;
            2    5     2  idString  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      json  

  private io.vertx.core.json.JsonObject decodeKeyWhenUseObjectId(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 949
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifne 1
            aload 1 /* json */
            areturn
         1: .line 951
      StackMap locals:
      StackMap stack:
            aload 1 /* json */
            ldc "_id"
            aconst_null
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* idField */
        start local 2 // java.lang.Object idField
         2: .line 952
            aload 2 /* idField */
            instanceof io.vertx.core.json.JsonObject
            ifne 3
            aload 1 /* json */
            areturn
         3: .line 954
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* idField */
            checkcast io.vertx.core.json.JsonObject
            ldc "$oid"
            aconst_null
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* idString */
        start local 3 // java.lang.Object idString
         4: .line 955
            aload 3 /* idString */
            instanceof java.lang.String
            ifne 5
            aload 1 /* json */
            areturn
         5: .line 957
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* json */
            ldc "_id"
            aload 3 /* idString */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         6: .line 959
            aload 1 /* json */
            areturn
        end local 3 // java.lang.Object idString
        end local 2 // java.lang.Object idField
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1      json  Lio/vertx/core/json/JsonObject;
            2    7     2   idField  Ljava/lang/Object;
            4    7     3  idString  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      json  

  private com.mongodb.reactivestreams.client.FindPublisher<io.vertx.core.json.JsonObject> doFind(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.FindOptions);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lcom/mongodb/reactivestreams/client/FindPublisher;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String collection
        start local 2 // io.vertx.core.json.JsonObject query
        start local 3 // io.vertx.ext.mongo.FindOptions options
         0: .line 963
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
         1: .line 964
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* query */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.encodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 5 /* bquery */
        start local 5 // org.bson.conversions.Bson bquery
         2: .line 965
            aload 4 /* coll */
            aload 5 /* bquery */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            astore 6 /* find */
        start local 6 // com.mongodb.reactivestreams.client.FindPublisher find
         3: .line 966
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getLimit:()I
            iconst_m1
            if_icmpeq 5
         4: .line 967
            aload 6 /* find */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getLimit:()I
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.limit:(I)Lcom/mongodb/reactivestreams/client/FindPublisher;
            pop
         5: .line 969
      StackMap locals: com.mongodb.reactivestreams.client.MongoCollection org.bson.conversions.Bson com.mongodb.reactivestreams.client.FindPublisher
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSkip:()I
            ifle 7
         6: .line 970
            aload 6 /* find */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSkip:()I
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.skip:(I)Lcom/mongodb/reactivestreams/client/FindPublisher;
            pop
         7: .line 972
      StackMap locals:
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            ifnull 9
         8: .line 973
            aload 6 /* find */
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            pop
         9: .line 975
      StackMap locals:
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            ifnull 11
        10: .line 976
            aload 6 /* find */
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokeinterface com.mongodb.reactivestreams.client.FindPublisher.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/reactivestreams/client/FindPublisher;
            pop
        11: .line 978
      StackMap locals:
      StackMap stack:
            aload 6 /* find */
            areturn
        end local 6 // com.mongodb.reactivestreams.client.FindPublisher find
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 3 // io.vertx.ext.mongo.FindOptions options
        end local 2 // io.vertx.core.json.JsonObject query
        end local 1 // java.lang.String collection
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   12     1  collection  Ljava/lang/String;
            0   12     2       query  Lio/vertx/core/json/JsonObject;
            0   12     3     options  Lio/vertx/ext/mongo/FindOptions;
            1   12     4        coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            2   12     5      bquery  Lorg/bson/conversions/Bson;
            3   12     6        find  Lcom/mongodb/reactivestreams/client/FindPublisher<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lcom/mongodb/reactivestreams/client/FindPublisher<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  
      query       
      options     

  private com.mongodb.reactivestreams.client.MongoCollection<io.vertx.core.json.JsonObject> getCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String name
         0: .line 982
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            areturn
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
      Name  Flags
      name  

  private com.mongodb.reactivestreams.client.MongoCollection<io.vertx.core.json.JsonObject> getCollection(java.lang.String, io.vertx.ext.mongo.WriteOption);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.ext.mongo.WriteOption writeOption
         0: .line 986
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.holder:Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
            getfield io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.db:Lcom/mongodb/reactivestreams/client/MongoDatabase;
            aload 1 /* name */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.reactivestreams.client.MongoDatabase.getCollection:(Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 3 /* coll */
        start local 3 // com.mongodb.reactivestreams.client.MongoCollection coll
         1: .line 987
            aload 3 /* coll */
            ifnull 3
            aload 2 /* writeOption */
            ifnull 3
         2: .line 988
            aload 3 /* coll */
            aload 2 /* writeOption */
            invokevirtual io.vertx.ext.mongo.WriteOption.name:()Ljava/lang/String;
            invokestatic com.mongodb.WriteConcern.valueOf:(Ljava/lang/String;)Lcom/mongodb/WriteConcern;
            invokeinterface com.mongodb.reactivestreams.client.MongoCollection.withWriteConcern:(Lcom/mongodb/WriteConcern;)Lcom/mongodb/reactivestreams/client/MongoCollection;
            astore 3 /* coll */
         3: .line 990
      StackMap locals: com.mongodb.reactivestreams.client.MongoCollection
      StackMap stack:
            aload 3 /* coll */
            areturn
        end local 3 // com.mongodb.reactivestreams.client.MongoCollection coll
        end local 2 // io.vertx.ext.mongo.WriteOption writeOption
        end local 1 // java.lang.String name
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    4     1         name  Ljava/lang/String;
            0    4     2  writeOption  Lio/vertx/ext/mongo/WriteOption;
            1    4     3         coll  Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/reactivestreams/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      name         
      writeOption  

  private com.mongodb.client.model.IndexOptions mongoIndexOptions(io.vertx.ext.mongo.IndexOptions);
    descriptor: (Lio/vertx/ext/mongo/IndexOptions;)Lcom/mongodb/client/model/IndexOptions;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.ext.mongo.IndexOptions options
         0: .line 994
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
         1: .line 995
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isBackground:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.background:(Z)Lcom/mongodb/client/model/IndexOptions;
         2: .line 996
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isUnique:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.unique:(Z)Lcom/mongodb/client/model/IndexOptions;
         3: .line 997
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getName:()Ljava/lang/String;
            invokevirtual com.mongodb.client.model.IndexOptions.name:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
         4: .line 998
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isSparse:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.sparse:(Z)Lcom/mongodb/client/model/IndexOptions;
         5: .line 999
            aload 1 /* options */
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual io.vertx.ext.mongo.IndexOptions.getExpireAfter:(Ljava/util/concurrent/TimeUnit;)Ljava/lang/Long;
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.client.model.IndexOptions.expireAfter:(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Lcom/mongodb/client/model/IndexOptions;
         6: .line 1000
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getVersion:()Ljava/lang/Integer;
            invokevirtual com.mongodb.client.model.IndexOptions.version:(Ljava/lang/Integer;)Lcom/mongodb/client/model/IndexOptions;
         7: .line 1001
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getWeights:()Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            invokevirtual com.mongodb.client.model.IndexOptions.weights:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/IndexOptions;
         8: .line 1002
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getDefaultLanguage:()Ljava/lang/String;
            invokevirtual com.mongodb.client.model.IndexOptions.defaultLanguage:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
         9: .line 1003
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getLanguageOverride:()Ljava/lang/String;
            invokevirtual com.mongodb.client.model.IndexOptions.languageOverride:(Ljava/lang/String;)Lcom/mongodb/client/model/IndexOptions;
        10: .line 1004
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getTextVersion:()Ljava/lang/Integer;
            invokevirtual com.mongodb.client.model.IndexOptions.textVersion:(Ljava/lang/Integer;)Lcom/mongodb/client/model/IndexOptions;
        11: .line 1005
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getSphereVersion:()Ljava/lang/Integer;
            invokevirtual com.mongodb.client.model.IndexOptions.sphereVersion:(Ljava/lang/Integer;)Lcom/mongodb/client/model/IndexOptions;
        12: .line 1006
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getBits:()Ljava/lang/Integer;
            invokevirtual com.mongodb.client.model.IndexOptions.bits:(Ljava/lang/Integer;)Lcom/mongodb/client/model/IndexOptions;
        13: .line 1007
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getMin:()Ljava/lang/Double;
            invokevirtual com.mongodb.client.model.IndexOptions.min:(Ljava/lang/Double;)Lcom/mongodb/client/model/IndexOptions;
        14: .line 1008
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getMax:()Ljava/lang/Double;
            invokevirtual com.mongodb.client.model.IndexOptions.max:(Ljava/lang/Double;)Lcom/mongodb/client/model/IndexOptions;
        15: .line 1009
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getBucketSize:()Ljava/lang/Double;
            invokevirtual com.mongodb.client.model.IndexOptions.bucketSize:(Ljava/lang/Double;)Lcom/mongodb/client/model/IndexOptions;
        16: .line 1010
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getStorageEngine:()Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            invokevirtual com.mongodb.client.model.IndexOptions.storageEngine:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/IndexOptions;
        17: .line 1011
            aload 1 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.getPartialFilterExpression:()Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.toBson:(Lio/vertx/core/json/JsonObject;)Lorg/bson/conversions/Bson;
            invokevirtual com.mongodb.client.model.IndexOptions.partialFilterExpression:(Lorg/bson/conversions/Bson;)Lcom/mongodb/client/model/IndexOptions;
        18: .line 994
            areturn
        end local 1 // io.vertx.ext.mongo.IndexOptions options
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   19     1  options  Lio/vertx/ext/mongo/IndexOptions;
    MethodParameters:
         Name  Flags
      options  

  io.vertx.ext.mongo.impl.JsonObjectBsonAdapter wrap(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.json.JsonObject jsonObject
         0: .line 1015
            aload 1 /* jsonObject */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: new io.vertx.ext.mongo.impl.JsonObjectBsonAdapter
            dup
            aload 1 /* jsonObject */
            invokespecial io.vertx.ext.mongo.impl.JsonObjectBsonAdapter.<init>:(Lio/vertx/core/json/JsonObject;)V
      StackMap locals:
      StackMap stack: io.vertx.ext.mongo.impl.JsonObjectBsonAdapter
         2: areturn
        end local 1 // io.vertx.core.json.JsonObject jsonObject
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  jsonObject  Lio/vertx/core/json/JsonObject;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      jsonObject  

  private void removeFromMap(io.vertx.core.shareddata.LocalMap<java.lang.String, io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder>, java.lang.String);
    descriptor: (Lio/vertx/core/shareddata/LocalMap;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.shareddata.LocalMap map
        start local 2 // java.lang.String dataSourceName
         0: .line 1019
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            dup
            astore 3
            monitorenter
         1: .line 1020
            aload 1 /* map */
            aload 2 /* dataSourceName */
            invokeinterface io.vertx.core.shareddata.LocalMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 1021
            aload 1 /* map */
            invokeinterface io.vertx.core.shareddata.LocalMap.isEmpty:()Z
            ifeq 4
         3: .line 1022
            aload 1 /* map */
            invokeinterface io.vertx.core.shareddata.LocalMap.close:()V
         4: .line 1019
      StackMap locals: io.vertx.core.impl.VertxInternal
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 1025
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String dataSourceName
        end local 1 // io.vertx.core.shareddata.LocalMap map
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    9     1             map  Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;>;
            0    9     2  dataSourceName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;>;Ljava/lang/String;)V
    MethodParameters:
                Name  Flags
      map             
      dataSourceName  

  private io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder lookupHolder(java.lang.String, io.vertx.core.json.JsonObject);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // java.lang.String datasourceName
        start local 2 // io.vertx.core.json.JsonObject config
         0: .line 1028
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            dup
            astore 3
            monitorenter
         1: .line 1029
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.sharedData:()Lio/vertx/core/shareddata/SharedData;
            ldc "__vertx.MongoClient.datasources"
            invokeinterface io.vertx.core.shareddata.SharedData.getLocalMap:(Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap;
            astore 4 /* map */
        start local 4 // io.vertx.core.shareddata.LocalMap map
         2: .line 1030
            aload 4 /* map */
            aload 1 /* datasourceName */
            invokeinterface io.vertx.core.shareddata.LocalMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder
            astore 5 /* theHolder */
        start local 5 // io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder theHolder
         3: .line 1031
            aload 5 /* theHolder */
            ifnonnull 7
         4: .line 1032
            new io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder
            dup
            aload 2 /* config */
            aload 0 /* this */
            aload 4 /* map */
            aload 1 /* datasourceName */
            invokedynamic run(Lio/vertx/ext/mongo/impl/MongoClientImpl;Lio/vertx/core/shareddata/LocalMap;Ljava/lang/String;)Ljava/lang/Runnable;
              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:
                  ()V
                  io/vertx/ext/mongo/impl/MongoClientImpl.lambda$17(Lio/vertx/core/shareddata/LocalMap;Ljava/lang/String;)V (7)
                  ()V
            invokespecial io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.<init>:(Lio/vertx/core/json/JsonObject;Ljava/lang/Runnable;)V
            astore 5 /* theHolder */
         5: .line 1033
            aload 4 /* map */
            aload 1 /* datasourceName */
            aload 5 /* theHolder */
            invokeinterface io.vertx.core.shareddata.LocalMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1034
            goto 8
         7: .line 1035
      StackMap locals: io.vertx.core.impl.VertxInternal io.vertx.core.shareddata.LocalMap io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder
      StackMap stack:
            aload 5 /* theHolder */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder.incRefCount:()V
         8: .line 1037
      StackMap locals:
      StackMap stack:
            aload 5 /* theHolder */
            aload 3
            monitorexit
         9: areturn
        end local 5 // io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder theHolder
        end local 4 // io.vertx.core.shareddata.LocalMap map
        10: .line 1028
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.impl.VertxInternal
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        11: athrow
        end local 2 // io.vertx.core.json.JsonObject config
        end local 1 // java.lang.String datasourceName
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   12     1  datasourceName  Ljava/lang/String;
            0   12     2          config  Lio/vertx/core/json/JsonObject;
            2   10     4             map  Lio/vertx/core/shareddata/LocalMap<Ljava/lang/String;Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;>;
            3   10     5       theHolder  Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any
    MethodParameters:
                Name  Flags
      datasourceName  
      config          

  public void close(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 1043
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 2 /* ctx */
        start local 2 // io.vertx.core.impl.ContextInternal ctx
         1: .line 1044
            aload 0 /* this */
            aload 2 /* ctx */
            aload 1 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.close:(Lio/vertx/core/Promise;)V
         2: .line 1045
            return
        end local 2 // io.vertx.core.impl.ContextInternal ctx
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    3     2      ctx  Lio/vertx/core/impl/ContextInternal;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      handler  

  static int[] $SWITCH_TABLE$io$vertx$ext$mongo$BulkOperation$BulkOperationType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 68
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.$SWITCH_TABLE$io$vertx$ext$mongo$BulkOperation$BulkOperationType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.ext.mongo.BulkOperation$BulkOperationType.values:()[Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.ext.mongo.BulkOperation$BulkOperationType.DELETE:Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            invokevirtual io.vertx.ext.mongo.BulkOperation$BulkOperationType.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.ext.mongo.BulkOperation$BulkOperationType.INSERT:Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            invokevirtual io.vertx.ext.mongo.BulkOperation$BulkOperationType.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.ext.mongo.BulkOperation$BulkOperationType.REPLACE:Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            invokevirtual io.vertx.ext.mongo.BulkOperation$BulkOperationType.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.vertx.ext.mongo.BulkOperation$BulkOperationType.UPDATE:Lio/vertx/ext/mongo/BulkOperation$BulkOperationType;
            invokevirtual io.vertx.ext.mongo.BulkOperation$BulkOperationType.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.$SWITCH_TABLE$io$vertx$ext$mongo$BulkOperation$BulkOperationType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private java.lang.String lambda$0(io.vertx.core.json.JsonObject, java.lang.Void);
    descriptor: (Lio/vertx/core/json/JsonObject;Ljava/lang/Void;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 2 // java.lang.Void v
         0: .line 153
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifeq 1
            aload 1
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getJsonObject:(Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            ldc "$oid"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 2 // java.lang.Void v
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     2     v  Ljava/lang/Void;

  private java.lang.String lambda$1(boolean, io.vertx.core.json.JsonObject, java.lang.Void);
    descriptor: (ZLio/vertx/core/json/JsonObject;Ljava/lang/Void;)Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 3 // java.lang.Void v
         0: .line 198
            iload 1
            ifeq 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 2
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.decodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 3 // java.lang.Void v
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     3     v  Ljava/lang/Void;

  private void lambda$2(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 2 // java.lang.Object entry
         0: .line 235
            aload 1
            aload 0 /* this */
            aload 2 /* entry */
            invokestatic io.vertx.core.json.JsonObject.mapFrom:(Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.Object entry
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     2  entry  Ljava/lang/Object;

  private io.vertx.core.json.JsonObject lambda$6(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.json.JsonObject object
         0: .line 363
            aload 1 /* object */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* object */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.decodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
      StackMap locals:
      StackMap stack: io.vertx.core.json.JsonObject
         2: areturn
        end local 1 // io.vertx.core.json.JsonObject object
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1  object  Lio/vertx/core/json/JsonObject;

  private void lambda$7(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 2 // java.lang.Object entry
         0: .line 404
            aload 1
            aload 0 /* this */
            aload 2 /* entry */
            invokestatic io.vertx.core.json.JsonObject.mapFrom:(Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.Object entry
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     2  entry  Ljava/lang/Object;

  private com.mongodb.client.model.IndexModel lambda$11(io.vertx.ext.mongo.IndexModel);
    descriptor: (Lio/vertx/ext/mongo/IndexModel;)Lcom/mongodb/client/model/IndexModel;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.ext.mongo.IndexModel it
         0: .line 733
            aload 1 /* it */
            invokevirtual io.vertx.ext.mongo.IndexModel.getOptions:()Lio/vertx/ext/mongo/IndexOptions;
            ifnull 2
         1: .line 734
            new com.mongodb.client.model.IndexModel
            dup
            aload 0 /* this */
            aload 1 /* it */
            invokevirtual io.vertx.ext.mongo.IndexModel.getKey:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            aload 0 /* this */
            aload 1 /* it */
            invokevirtual io.vertx.ext.mongo.IndexModel.getOptions:()Lio/vertx/ext/mongo/IndexOptions;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.mongoIndexOptions:(Lio/vertx/ext/mongo/IndexOptions;)Lcom/mongodb/client/model/IndexOptions;
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;)V
            areturn
         2: .line 735
      StackMap locals:
      StackMap stack:
            new com.mongodb.client.model.IndexModel
            dup
            aload 0 /* this */
            aload 1 /* it */
            invokevirtual io.vertx.ext.mongo.IndexModel.getKey:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokespecial com.mongodb.client.model.IndexModel.<init>:(Lorg/bson/conversions/Bson;)V
            areturn
        end local 1 // io.vertx.ext.mongo.IndexModel it
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    3     1    it  Lio/vertx/ext/mongo/IndexModel;

  private static void lambda$13(java.lang.String, io.vertx.core.json.JsonObject, java.util.Map$Entry);
    descriptor: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Ljava/util/Map$Entry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // java.util.Map$Entry entry
         0: .line 800
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 0
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 801
            aload 1
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         2: .line 803
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Map$Entry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     2  entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;

  private static io.vertx.core.json.JsonObject lambda$15(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // java.lang.Object value
         0: .line 855
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            aload 0
            aload 1 /* value */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            areturn
        end local 1 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  value  Ljava/lang/Object;

  private void lambda$16(java.util.List, java.lang.Object);
    descriptor: (Ljava/util/List;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 2 // java.lang.Object entry
         0: .line 922
            aload 1
            aload 0 /* this */
            aload 2 /* entry */
            invokestatic io.vertx.core.json.JsonObject.mapFrom:(Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            return
        end local 2 // java.lang.Object entry
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    1     2  entry  Ljava/lang/Object;

  private void lambda$17(io.vertx.core.shareddata.LocalMap, java.lang.String);
    descriptor: (Lio/vertx/core/shareddata/LocalMap;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
         0: .line 1032
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeFromMap:(Lio/vertx/core/shareddata/LocalMap;Ljava/lang/String;)V
            return
        end local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
}
SourceFile: "MongoClientImpl.java"
NestMembers:
  io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder
InnerClasses:
  public final BulkOperationType = io.vertx.ext.mongo.BulkOperation$BulkOperationType of io.vertx.ext.mongo.BulkOperation
  private MongoHolder = io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder of io.vertx.ext.mongo.impl.MongoClientImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map