public class io.vertx.ext.mongo.impl.MongoClientImpl implements io.vertx.ext.mongo.MongoClient
  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.core.logging.Logger log;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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 ID_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "_id"

  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.Vertx vertx;
    descriptor: Lio/vertx/core/Vertx;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  protected final io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder holder;
    descriptor: Lio/vertx/ext/mongo/impl/MongoClientImpl$MongoHolder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected boolean useObjectId;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  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 94
            ldc Lio/vertx/ext/mongo/impl/MongoClientImpl;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.ext.mongo.impl.MongoClientImpl.log:Lio/vertx/core/logging/Logger;
         1: .line 96
            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;
         2: .line 97
            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;
         3: .line 98
            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;
         4: .line 99
            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;
         5: .line 102
            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 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 1 /* vertx */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 112
            aload 2 /* config */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 113
            aload 3 /* dataSourceName */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 114
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
         5: .line 115
            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;
         6: .line 116
            aload 0 /* this */
            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.mongo:()Lcom/mongodb/async/client/MongoClient;
            putfield io.vertx.ext.mongo.impl.MongoClientImpl.mongo:Lcom/mongodb/async/client/MongoClient;
         7: .line 117
            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
         8: .line 118
            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    9     0            this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    9     1           vertx  Lio/vertx/core/Vertx;
            0    9     2          config  Lio/vertx/core/json/JsonObject;
            0    9     3  dataSourceName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      vertx           
      config          
      dataSourceName  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
         0: .line 122
            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 123
            return
        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;

  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=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 document
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 127
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.saveWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 128
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2       document  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=7, locals=10, 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 133
            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 134
            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 135
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 137
            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/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         4: .line 138
            aload 2 /* document */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 6 /* id */
        start local 6 // java.lang.Object id
         5: .line 139
            aload 6 /* id */
            ifnonnull 8
         6: .line 140
            aload 5 /* coll */
            aload 2 /* document */
            aload 0 /* this */
            aload 4 /* resultHandler */
            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;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.insertOne:(Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
         7: .line 141
            goto 15
         8: .line 142
      StackMap locals: com.mongodb.async.client.MongoCollection java.lang.Object
      StackMap stack:
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 7 /* filter */
        start local 7 // io.vertx.core.json.JsonObject filter
         9: .line 143
            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 8 /* encodedDocument */
        start local 8 // io.vertx.core.json.JsonObject encodedDocument
        10: .line 144
            aload 7 /* filter */
            ldc "_id"
            aload 8 /* 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 146
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
        12: .line 147
            iconst_1
            invokevirtual com.mongodb.client.model.UpdateOptions.upsert:(Z)Lcom/mongodb/client/model/UpdateOptions;
        13: .line 146
            astore 9 /* updateOptions */
        start local 9 // com.mongodb.client.model.UpdateOptions updateOptions
        14: .line 149
            aload 5 /* coll */
            aload 0 /* this */
            aload 7 /* filter */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            aload 8 /* encodedDocument */
            aload 9 /* updateOptions */
            aload 0 /* this */
            aload 4 /* resultHandler */
            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/MongoClientImpl.lambda$1(Lcom/mongodb/client/result/UpdateResult;)Ljava/lang/String; (6)
                  (Lcom/mongodb/client/result/UpdateResult;)Ljava/lang/String;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
        end local 9 // com.mongodb.client.model.UpdateOptions updateOptions
        end local 8 // io.vertx.core.json.JsonObject encodedDocument
        end local 7 // io.vertx.core.json.JsonObject filter
        15: .line 151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // java.lang.Object id
        end local 5 // com.mongodb.async.client.MongoCollection coll
        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   16     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   16     1       collection  Ljava/lang/String;
            0   16     2         document  Lio/vertx/core/json/JsonObject;
            0   16     3      writeOption  Lio/vertx/ext/mongo/WriteOption;
            0   16     4    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            4   16     5             coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5   16     6               id  Ljava/lang/Object;
            9   15     7           filter  Lio/vertx/core/json/JsonObject;
           10   15     8  encodedDocument  Lio/vertx/core/json/JsonObject;
           14   15     9    updateOptions  Lcom/mongodb/client/model/UpdateOptions;
    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.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=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 document
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 156
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* document */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.insertWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 157
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2       document  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=7, locals=8, 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 162
            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 163
            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 164
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 166
            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 5 /* encodedDocument */
        start local 5 // io.vertx.core.json.JsonObject encodedDocument
         4: .line 167
            aload 2 /* document */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            istore 6 /* hasCustomId */
        start local 6 // boolean hasCustomId
         5: .line 169
            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/async/client/MongoCollection;
            astore 7 /* coll */
        start local 7 // com.mongodb.async.client.MongoCollection coll
         6: .line 170
            aload 7 /* coll */
            aload 5 /* encodedDocument */
            aload 0 /* this */
            aload 4 /* resultHandler */
            aload 0 /* this */
            iload 6 /* hasCustomId */
            aload 5 /* 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$2(ZLio/vertx/core/json/JsonObject;Ljava/lang/Void;)Ljava/lang/String; (7)
                  (Ljava/lang/Void;)Ljava/lang/String;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.insertOne:(Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)V
         7: .line 176
            aload 0 /* this */
            areturn
        end local 7 // com.mongodb.async.client.MongoCollection coll
        end local 6 // boolean hasCustomId
        end local 5 // io.vertx.core.json.JsonObject encodedDocument
        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    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;
            0    8     4    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            4    8     5  encodedDocument  Lio/vertx/core/json/JsonObject;
            5    8     6      hasCustomId  Z
            6    8     7             coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    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.ext.mongo.MongoClient update(java.lang.String, io.vertx.core.json.JsonObject, 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/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    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 // 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 181
            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;
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.updateWithOptions:(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;
            pop
         1: .line 182
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3         update  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      resultHandler  

  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=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 // 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 187
            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;
            aload 4 /* resultHandler */
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 188
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3         update  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.ext.mongo.MongoClient updateWithOptions(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<java.lang.Void>>);
    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=7, locals=6, 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 193
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* update */
            aload 4 /* options */
            aload 0 /* this */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toVoidAsyncResult:(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 194
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3         update  Lio/vertx/core/json/JsonObject;
            0    2     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0    2     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    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<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      update         
      options        
      resultHandler  

  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=6, locals=9, 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 199
            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 200
            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 201
            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 202
            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 203
            aload 5 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 205
            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;
            astore 3 /* update */
         6: .line 207
            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/async/client/MongoCollection;
            astore 6 /* coll */
        start local 6 // com.mongodb.async.client.MongoCollection coll
         7: .line 208
            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 7 /* bquery */
        start local 7 // org.bson.conversions.Bson bquery
         8: .line 209
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* update */
            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 8 /* bupdate */
        start local 8 // org.bson.conversions.Bson bupdate
         9: .line 212
            aload 4 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isMulti:()Z
            ifeq 12
        10: .line 213
            aload 6 /* coll */
            aload 7 /* bquery */
            aload 8 /* bupdate */
            aload 4 /* options */
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.mongoUpdateOptions:(Lio/vertx/ext/mongo/UpdateOptions;)Lcom/mongodb/client/model/UpdateOptions;
            aload 0 /* this */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientUpdateResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.updateMany:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
        11: .line 214
            goto 13
        12: .line 215
      StackMap locals: com.mongodb.async.client.MongoCollection org.bson.conversions.Bson org.bson.conversions.Bson
      StackMap stack:
            aload 6 /* coll */
            aload 7 /* bquery */
            aload 8 /* bupdate */
            aload 4 /* options */
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.mongoUpdateOptions:(Lio/vertx/ext/mongo/UpdateOptions;)Lcom/mongodb/client/model/UpdateOptions;
            aload 0 /* this */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientUpdateResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.updateOne:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
        13: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 8 // org.bson.conversions.Bson bupdate
        end local 7 // org.bson.conversions.Bson bquery
        end local 6 // com.mongodb.async.client.MongoCollection coll
        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   14     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   14     1     collection  Ljava/lang/String;
            0   14     2          query  Lio/vertx/core/json/JsonObject;
            0   14     3         update  Lio/vertx/core/json/JsonObject;
            0   14     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0   14     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            7   14     6           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            8   14     7         bquery  Lorg/bson/conversions/Bson;
            9   14     8        bupdate  Lorg/bson/conversions/Bson;
    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  

  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 221
            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 222
            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 226
            aload 1 /* query */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 227
            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 228
            goto 6
        end local 5 // java.lang.String id
         5: .line 229
      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 231
      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/String;)Lio/vertx/core/json/JsonObject;
            pop
         7: .line 232
            aload 2 /* update */
            ldc "$setOnInsert"
            aload 4 /* setId */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            pop
        end local 5 // java.lang.String id
        end local 4 // io.vertx.core.json.JsonObject setId
         8: .line 234
      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 replace(java.lang.String, io.vertx.core.json.JsonObject, 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/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
    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 // 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 239
            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;
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.replaceWithOptions:(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;
            pop
         1: .line 240
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3        replace  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      resultHandler  

  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=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 // 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 245
            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;
            aload 4 /* resultHandler */
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 246
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3        replace  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.ext.mongo.MongoClient replaceWithOptions(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<java.lang.Void>>);
    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=7, locals=6, 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 251
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* replace */
            aload 4 /* options */
            aload 0 /* this */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toVoidAsyncResult:(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            areturn
        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    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;
            0    1     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0    1     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    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<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      replace        
      options        
      resultHandler  

  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=6, 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 // 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 256
            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 257
            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 258
            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 259
            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 260
            aload 5 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 262
            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/async/client/MongoCollection;
            astore 6 /* coll */
        start local 6 // com.mongodb.async.client.MongoCollection coll
         6: .line 263
            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 7 /* bquery */
        start local 7 // org.bson.conversions.Bson bquery
         7: .line 264
            aload 6 /* coll */
            aload 7 /* 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 4 /* options */
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.mongoUpdateOptions:(Lio/vertx/ext/mongo/UpdateOptions;)Lcom/mongodb/client/model/UpdateOptions;
            aload 0 /* this */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientUpdateResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.replaceOne:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
         8: .line 265
            aload 0 /* this */
            areturn
        end local 7 // org.bson.conversions.Bson bquery
        end local 6 // com.mongodb.async.client.MongoCollection coll
        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    9     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    9     1     collection  Ljava/lang/String;
            0    9     2          query  Lio/vertx/core/json/JsonObject;
            0    9     3        replace  Lio/vertx/core/json/JsonObject;
            0    9     4        options  Lio/vertx/ext/mongo/UpdateOptions;
            0    9     5  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;
            6    9     6           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            7    9     7         bquery  Lorg/bson/conversions/Bson;
    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.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=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.Handler resultHandler
         0: .line 270
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 271
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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 276
            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.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=6, locals=7, 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 281
            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 282
            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 283
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 285
            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/async/client/FindIterable;
            astore 5 /* view */
        start local 5 // com.mongodb.async.client.FindIterable view
         4: .line 286
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* results */
        start local 6 // java.util.List results
         5: .line 287
            aload 5 /* view */
            aload 6 /* results */
            aload 0 /* this */
            aload 4 /* resultHandler */
            aload 0 /* this */
            aload 6 /* results */
            invokedynamic apply(Lio/vertx/ext/mongo/impl/MongoClientImpl;Ljava/util/List;)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$3(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (7)
                  (Ljava/util/List;)Ljava/util/List;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.FindIterable.into:(Ljava/util/Collection;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 291
            aload 0 /* this */
            areturn
        end local 6 // java.util.List results
        end local 5 // com.mongodb.async.client.FindIterable view
        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    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        options  Lio/vertx/ext/mongo/FindOptions;
            0    7     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;>;
            4    7     5           view  Lcom/mongodb/async/client/FindIterable<Lio/vertx/core/json/JsonObject;>;
            5    7     6        results  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.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 296
            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 297
            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 298
            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/async/client/FindIterable;
            astore 4 /* view */
        start local 4 // com.mongodb.async.client.FindIterable view
         3: .line 299
            new io.vertx.ext.mongo.impl.MongoIterableStream
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            aload 4 /* view */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getBatchSize:()I
            invokespecial io.vertx.ext.mongo.impl.MongoIterableStream.<init>:(Lio/vertx/core/Context;Lcom/mongodb/async/client/MongoIterable;I)V
            areturn
        end local 4 // com.mongodb.async.client.FindIterable 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/async/client/FindIterable<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=8, 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 304
            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 305
            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 306
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 308
            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 5 /* encodedQuery */
        start local 5 // io.vertx.core.json.JsonObject encodedQuery
         4: .line 310
            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 311
            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 7 /* bfields */
        start local 7 // org.bson.conversions.Bson bfields
         6: .line 312
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            aload 6 /* bquery */
            invokeinterface com.mongodb.async.client.MongoCollection.find:(Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
            aload 7 /* bfields */
            invokeinterface com.mongodb.async.client.FindIterable.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
            aload 0 /* this */
            aload 4 /* resultHandler */
            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$5(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject; (7)
                  (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.FindIterable.first:(Lcom/mongodb/async/SingleResultCallback;)V
         7: .line 316
            aload 0 /* this */
            areturn
        end local 7 // org.bson.conversions.Bson bfields
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // io.vertx.core.json.JsonObject encodedQuery
        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    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;
            0    8     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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        bfields  Lorg/bson/conversions/Bson;
    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.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=7, 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 // 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 321
            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;
            aload 4 /* resultHandler */
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 322
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3         update  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=12, 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 327
            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 328
            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 329
            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 330
            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 331
            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 332
            aload 6 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 334
            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 7 /* encodedQuery */
        start local 7 // io.vertx.core.json.JsonObject encodedQuery
         7: .line 336
            aload 0 /* this */
            aload 7 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 8 /* bquery */
        start local 8 // org.bson.conversions.Bson bquery
         8: .line 337
            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 9 /* bupdate */
        start local 9 // org.bson.conversions.Bson bupdate
         9: .line 338
            new com.mongodb.client.model.FindOneAndUpdateOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndUpdateOptions.<init>:()V
            astore 10 /* foauOptions */
        start local 10 // com.mongodb.client.model.FindOneAndUpdateOptions foauOptions
        10: .line 339
            aload 10 /* 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
        11: .line 340
            aload 10 /* 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
        12: .line 341
            aload 10 /* 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
        13: .line 342
            aload 10 /* foauOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isReturningNewDocument:()Z
            ifeq 14
            getstatic com.mongodb.client.model.ReturnDocument.AFTER:Lcom/mongodb/client/model/ReturnDocument;
            goto 15
      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.Handler 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
        14: 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.Handler 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
        15: invokevirtual com.mongodb.client.model.FindOneAndUpdateOptions.returnDocument:(Lcom/mongodb/client/model/ReturnDocument;)Lcom/mongodb/client/model/FindOneAndUpdateOptions;
            pop
        16: .line 344
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 11 /* coll */
        start local 11 // com.mongodb.async.client.MongoCollection coll
        17: .line 345
            aload 11 /* coll */
            aload 8 /* bquery */
            aload 9 /* bupdate */
            aload 10 /* foauOptions */
            aload 0 /* this */
            aload 6 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.findOneAndUpdate:(Lorg/bson/conversions/Bson;Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndUpdateOptions;Lcom/mongodb/async/SingleResultCallback;)V
        18: .line 346
            aload 0 /* this */
            areturn
        end local 11 // com.mongodb.async.client.MongoCollection coll
        end local 10 // com.mongodb.client.model.FindOneAndUpdateOptions foauOptions
        end local 9 // org.bson.conversions.Bson bupdate
        end local 8 // org.bson.conversions.Bson bquery
        end local 7 // io.vertx.core.json.JsonObject encodedQuery
        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   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    findOptions  Lio/vertx/ext/mongo/FindOptions;
            0   19     5  updateOptions  Lio/vertx/ext/mongo/UpdateOptions;
            0   19     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            7   19     7   encodedQuery  Lio/vertx/core/json/JsonObject;
            8   19     8         bquery  Lorg/bson/conversions/Bson;
            9   19     9        bupdate  Lorg/bson/conversions/Bson;
           10   19    10    foauOptions  Lcom/mongodb/client/model/FindOneAndUpdateOptions;
           17   19    11           coll  Lcom/mongodb/async/client/MongoCollection<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.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=7, 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 // 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 351
            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;
            aload 4 /* resultHandler */
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 352
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3         update  Lio/vertx/core/json/JsonObject;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=11, 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 357
            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 358
            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 359
            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 360
            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 361
            aload 6 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 363
            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 7 /* encodedQuery */
        start local 7 // io.vertx.core.json.JsonObject encodedQuery
         6: .line 365
            aload 0 /* this */
            aload 7 /* encodedQuery */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrap:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/mongo/impl/JsonObjectBsonAdapter;
            astore 8 /* bquery */
        start local 8 // org.bson.conversions.Bson bquery
         7: .line 366
            new com.mongodb.client.model.FindOneAndReplaceOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndReplaceOptions.<init>:()V
            astore 9 /* foarOptions */
        start local 9 // com.mongodb.client.model.FindOneAndReplaceOptions foarOptions
         8: .line 367
            aload 9 /* 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
         9: .line 368
            aload 9 /* 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
        10: .line 369
            aload 9 /* 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
        11: .line 370
            aload 9 /* foarOptions */
            aload 5 /* updateOptions */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isReturningNewDocument:()Z
            ifeq 12
            getstatic com.mongodb.client.model.ReturnDocument.AFTER:Lcom/mongodb/client/model/ReturnDocument;
            goto 13
      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.Handler io.vertx.core.json.JsonObject org.bson.conversions.Bson com.mongodb.client.model.FindOneAndReplaceOptions
      StackMap stack: com.mongodb.client.model.FindOneAndReplaceOptions
        12: 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.Handler 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
        13: invokevirtual com.mongodb.client.model.FindOneAndReplaceOptions.returnDocument:(Lcom/mongodb/client/model/ReturnDocument;)Lcom/mongodb/client/model/FindOneAndReplaceOptions;
            pop
        14: .line 372
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 10 /* coll */
        start local 10 // com.mongodb.async.client.MongoCollection coll
        15: .line 373
            aload 10 /* coll */
            aload 8 /* bquery */
            aload 3 /* replace */
            aload 9 /* foarOptions */
            aload 0 /* this */
            aload 6 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.findOneAndReplace:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/FindOneAndReplaceOptions;Lcom/mongodb/async/SingleResultCallback;)V
        16: .line 374
            aload 0 /* this */
            areturn
        end local 10 // com.mongodb.async.client.MongoCollection coll
        end local 9 // com.mongodb.client.model.FindOneAndReplaceOptions foarOptions
        end local 8 // org.bson.conversions.Bson bquery
        end local 7 // io.vertx.core.json.JsonObject encodedQuery
        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   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;
            0   17     6  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            6   17     7   encodedQuery  Lio/vertx/core/json/JsonObject;
            7   17     8         bquery  Lorg/bson/conversions/Bson;
            8   17     9    foarOptions  Lcom/mongodb/client/model/FindOneAndReplaceOptions;
           15   17    10           coll  Lcom/mongodb/async/client/MongoCollection<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.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=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.Handler resultHandler
         0: .line 379
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            getstatic io.vertx.ext.mongo.impl.MongoClientImpl.DEFAULT_FIND_OPTIONS:Lio/vertx/ext/mongo/FindOptions;
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.findOneAndDeleteWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 380
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=5, 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.ext.mongo.FindOptions findOptions
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 385
            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 386
            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 387
            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 388
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 390
            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 5 /* encodedQuery */
        start local 5 // io.vertx.core.json.JsonObject encodedQuery
         5: .line 392
            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
         6: .line 393
            new com.mongodb.client.model.FindOneAndDeleteOptions
            dup
            invokespecial com.mongodb.client.model.FindOneAndDeleteOptions.<init>:()V
            astore 7 /* foadOptions */
        start local 7 // com.mongodb.client.model.FindOneAndDeleteOptions foadOptions
         7: .line 394
            aload 7 /* 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
         8: .line 395
            aload 7 /* 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
         9: .line 397
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 8 /* coll */
        start local 8 // com.mongodb.async.client.MongoCollection coll
        10: .line 398
            aload 8 /* coll */
            aload 6 /* bquery */
            aload 7 /* foadOptions */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.findOneAndDelete:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/FindOneAndDeleteOptions;Lcom/mongodb/async/SingleResultCallback;)V
        11: .line 399
            aload 0 /* this */
            areturn
        end local 8 // com.mongodb.async.client.MongoCollection coll
        end local 7 // com.mongodb.client.model.FindOneAndDeleteOptions foadOptions
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // io.vertx.core.json.JsonObject encodedQuery
        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   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;
            0   12     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            5   12     5   encodedQuery  Lio/vertx/core/json/JsonObject;
            6   12     6         bquery  Lorg/bson/conversions/Bson;
            7   12     7    foadOptions  Lcom/mongodb/client/model/FindOneAndDeleteOptions;
           10   12     8           coll  Lcom/mongodb/async/client/MongoCollection<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.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=4, locals=6, 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 404
            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 405
            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 406
            aload 3 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 408
            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 4 /* bquery */
        start local 4 // org.bson.conversions.Bson bquery
         4: .line 409
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         5: .line 410
            aload 5 /* coll */
            aload 4 /* bquery */
            aload 0 /* this */
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.count:(Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 411
            aload 0 /* this */
            areturn
        end local 5 // com.mongodb.async.client.MongoCollection coll
        end local 4 // org.bson.conversions.Bson bquery
        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    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  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Long;>;>;
            4    7     4         bquery  Lorg/bson/conversions/Bson;
            5    7     5           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    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.ext.mongo.MongoClient remove(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=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.Handler resultHandler
         0: .line 416
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 417
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  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=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.Handler resultHandler
         0: .line 422
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 423
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.ext.mongo.MongoClient removeWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    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=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 // 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 428
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* writeOption */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toVoidAsyncResult:(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentsWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 429
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      writeOption    
      resultHandler  

  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=7, 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 434
            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 435
            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 436
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 438
            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/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         4: .line 439
            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
         5: .line 440
            aload 5 /* coll */
            aload 6 /* bquery */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientDeleteResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.deleteMany:(Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 441
            aload 0 /* this */
            areturn
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // com.mongodb.async.client.MongoCollection coll
        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    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;
            0    7     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            4    7     5           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5    7     6         bquery  Lorg/bson/conversions/Bson;
    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.ext.mongo.MongoClient removeOne(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=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.Handler resultHandler
         0: .line 446
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeOneWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 447
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      resultHandler  

  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=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.Handler resultHandler
         0: .line 452
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aconst_null
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 453
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.ext.mongo.MongoClient removeOneWithOptions(java.lang.String, io.vertx.core.json.JsonObject, io.vertx.ext.mongo.WriteOption, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    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=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 // 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 458
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* query */
            aload 3 /* writeOption */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toVoidAsyncResult:(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.removeDocumentWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 459
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2          query  Lio/vertx/core/json/JsonObject;
            0    2     3    writeOption  Lio/vertx/ext/mongo/WriteOption;
            0    2     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/WriteOption;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/ext/mongo/MongoClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      collection     
      query          
      writeOption    
      resultHandler  

  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=7, 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 464
            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 465
            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 466
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 468
            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/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         4: .line 469
            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
         5: .line 470
            aload 5 /* coll */
            aload 6 /* bquery */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientDeleteResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.deleteOne:(Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 471
            aload 0 /* this */
            areturn
        end local 6 // org.bson.conversions.Bson bquery
        end local 5 // com.mongodb.async.client.MongoCollection coll
        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    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;
            0    7     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;
            4    7     5           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5    7     6         bquery  Lorg/bson/conversions/Bson;
    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.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=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 // java.util.List operations
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 476
            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;
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.bulkWriteWithOptions:(Ljava/lang/String;Ljava/util/List;Lio/vertx/ext/mongo/BulkWriteOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            pop
         1: .line 477
            aload 0 /* this */
            areturn
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1     collection  Ljava/lang/String;
            0    2     2     operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            0    2     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=5, locals=7, 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 482
            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 483
            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 484
            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 485
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 486
            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/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         5: .line 487
            aload 0 /* this */
            aload 2 /* operations */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertBulkOperations:(Ljava/util/List;)Ljava/util/List;
            astore 6 /* bulkOperations */
        start local 6 // java.util.List bulkOperations
         6: .line 488
            aload 5 /* coll */
            aload 6 /* bulkOperations */
            aload 3 /* bulkWriteOptions */
            invokestatic io.vertx.ext.mongo.impl.MongoClientImpl.mongoBulkWriteOptions:(Lio/vertx/ext/mongo/BulkWriteOptions;)Lcom/mongodb/client/model/BulkWriteOptions;
         7: .line 489
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toMongoClientBulkWriteResult:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
         8: .line 488
            invokeinterface com.mongodb.async.client.MongoCollection.bulkWrite:(Ljava/util/List;Lcom/mongodb/client/model/BulkWriteOptions;Lcom/mongodb/async/SingleResultCallback;)V
         9: .line 491
            aload 0 /* this */
            areturn
        end local 6 // java.util.List bulkOperations
        end local 5 // com.mongodb.async.client.MongoCollection coll
        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   10     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   10     1        collection  Ljava/lang/String;
            0   10     2        operations  Ljava/util/List<Lio/vertx/ext/mongo/BulkOperation;>;
            0   10     3  bulkWriteOptions  Lio/vertx/ext/mongo/BulkWriteOptions;
            0   10     4     resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;
            5   10     5              coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            6   10     6    bulkOperations  Ljava/util/List<Lcom/mongodb/client/model/WriteModel<Lio/vertx/core/json/JsonObject;>;>;
    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     

  private static com.mongodb.client.model.BulkWriteOptions mongoBulkWriteOptions(io.vertx.ext.mongo.BulkWriteOptions);
    descriptor: (Lio/vertx/ext/mongo/BulkWriteOptions;)Lcom/mongodb/client/model/BulkWriteOptions;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
         0: .line 495
            new com.mongodb.client.model.BulkWriteOptions
            dup
            invokespecial com.mongodb.client.model.BulkWriteOptions.<init>:()V
         1: .line 496
            aload 0 /* bulkWriteOptions */
            invokevirtual io.vertx.ext.mongo.BulkWriteOptions.isOrdered:()Z
            invokevirtual com.mongodb.client.model.BulkWriteOptions.ordered:(Z)Lcom/mongodb/client/model/BulkWriteOptions;
         2: .line 495
            astore 1 /* mongoBulkOptions */
        start local 1 // com.mongodb.client.model.BulkWriteOptions mongoBulkOptions
         3: .line 497
            aload 1 /* mongoBulkOptions */
            areturn
        end local 1 // com.mongodb.client.model.BulkWriteOptions mongoBulkOptions
        end local 0 // io.vertx.ext.mongo.BulkWriteOptions bulkWriteOptions
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0  bulkWriteOptions  Lio/vertx/ext/mongo/BulkWriteOptions;
            3    4     1  mongoBulkOptions  Lcom/mongodb/client/model/BulkWriteOptions;
    MethodParameters:
                  Name  Flags
      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 501
            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 502
            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 503
            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 505
      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 506
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isMulti:()Z
            ifeq 8
         6: .line 507
            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 508
            goto 27
         8: .line 509
      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 511
            goto 27
        end local 5 // org.bson.conversions.Bson bsonFilter
        10: .line 513
      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 514
            goto 27
        12: .line 516
      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 517
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isUpsert:()Z
            invokevirtual com.mongodb.client.model.UpdateOptions.upsert:(Z)Lcom/mongodb/client/model/UpdateOptions;
            invokespecial com.mongodb.client.model.ReplaceOneModel.<init>:(Lorg/bson/conversions/Bson;Ljava/lang/Object;Lcom/mongodb/client/model/UpdateOptions;)V
        14: .line 516
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 518
            goto 27
        16: .line 520
      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 521
            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 522
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
        19: .line 523
            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 522
            astore 8 /* updateOptions */
        start local 8 // com.mongodb.client.model.UpdateOptions updateOptions
        21: .line 524
            aload 3 /* bulkOperation */
            invokevirtual io.vertx.ext.mongo.BulkOperation.isMulti:()Z
            ifeq 24
        22: .line 525
            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 526
            goto 27
        24: .line 527
      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 529
            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 531
      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 502
      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 534
            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=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.Handler resultHandler
         0: .line 539
            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 540
            aload 2 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 542
            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/async/client/MongoDatabase;
            aload 1 /* collection */
            aload 0 /* this */
            aload 2 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoDatabase.createCollection:(Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 543
            aload 0 /* this */
            areturn
        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    4     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    4     1     collection  Ljava/lang/String;
            0    4     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=5, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // io.vertx.core.Handler resultHandler
         0: .line 548
            aload 1 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 549
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* names */
        start local 2 // java.util.List names
         2: .line 550
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            astore 3 /* context */
        start local 3 // io.vertx.core.Context context
         3: .line 551
            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/async/client/MongoDatabase;
            invokeinterface com.mongodb.async.client.MongoDatabase.listCollectionNames:()Lcom/mongodb/async/client/MongoIterable;
            aload 2 /* names */
            aload 3 /* context */
            aload 1 /* resultHandler */
            aload 2 /* names */
            invokedynamic onResult(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/List;)Lcom/mongodb/async/SingleResultCallback;
              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/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoClientImpl.lambda$6(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/List;Ljava/util/List;Ljava/lang/Throwable;)V (6)
                  (Ljava/util/List;Ljava/lang/Throwable;)V
            invokeinterface com.mongodb.async.client.MongoIterable.into:(Ljava/util/Collection;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 560
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Context context
        end local 2 // java.util.List names
        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    5     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    5     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Ljava/lang/String;>;>;>;
            2    5     2          names  Ljava/util/List<Ljava/lang/String;>;
            3    5     3        context  Lio/vertx/core/Context;
    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.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=3, 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 565
            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 566
            aload 2 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 568
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 3 /* coll */
        start local 3 // com.mongodb.async.client.MongoCollection coll
         3: .line 569
            aload 3 /* coll */
            aload 0 /* this */
            aload 2 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.drop:(Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 570
            aload 0 /* this */
            areturn
        end local 3 // com.mongodb.async.client.MongoCollection coll
        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    5     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    5     1     collection  Ljava/lang/String;
            0    5     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            3    5     3           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    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.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=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 key
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 575
            aload 0 /* this */
            aload 1 /* collection */
            aload 2 /* key */
            new io.vertx.ext.mongo.IndexOptions
            dup
            invokespecial io.vertx.ext.mongo.IndexOptions.<init>:()V
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.createIndexWithOptions:(Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/IndexOptions;Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/MongoClient;
            areturn
        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    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;
            0    1     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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=6, locals=7, 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 580
            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 581
            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 582
            aload 4 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 583
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 5 /* coll */
        start local 5 // com.mongodb.async.client.MongoCollection coll
         4: .line 584
            new com.mongodb.client.model.IndexOptions
            dup
            invokespecial com.mongodb.client.model.IndexOptions.<init>:()V
         5: .line 585
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isBackground:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.background:(Z)Lcom/mongodb/client/model/IndexOptions;
         6: .line 586
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isUnique:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.unique:(Z)Lcom/mongodb/client/model/IndexOptions;
         7: .line 587
            aload 3 /* 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;
         8: .line 588
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.IndexOptions.isSparse:()Z
            invokevirtual com.mongodb.client.model.IndexOptions.sparse:(Z)Lcom/mongodb/client/model/IndexOptions;
         9: .line 589
            aload 3 /* 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;
        10: .line 590
            aload 3 /* 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;
        11: .line 591
            aload 3 /* 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;
        12: .line 592
            aload 3 /* 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;
        13: .line 593
            aload 3 /* 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;
        14: .line 594
            aload 3 /* 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;
        15: .line 595
            aload 3 /* 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;
        16: .line 596
            aload 3 /* 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;
        17: .line 597
            aload 3 /* 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;
        18: .line 598
            aload 3 /* 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;
        19: .line 599
            aload 3 /* 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;
        20: .line 600
            aload 3 /* 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;
        21: .line 601
            aload 3 /* 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;
        22: .line 584
            astore 6 /* driverOpts */
        start local 6 // com.mongodb.client.model.IndexOptions driverOpts
        23: .line 602
            aload 5 /* 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 6 /* driverOpts */
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.toVoidAsyncResult:(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.createIndex:(Lorg/bson/conversions/Bson;Lcom/mongodb/client/model/IndexOptions;Lcom/mongodb/async/SingleResultCallback;)V
        24: .line 603
            aload 0 /* this */
            areturn
        end local 6 // com.mongodb.client.model.IndexOptions driverOpts
        end local 5 // com.mongodb.async.client.MongoCollection coll
        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   25     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   25     1     collection  Ljava/lang/String;
            0   25     2            key  Lio/vertx/core/json/JsonObject;
            0   25     3        options  Lio/vertx/ext/mongo/IndexOptions;
            0   25     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            4   25     5           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
           23   25     6     driverOpts  Lcom/mongodb/client/model/IndexOptions;
    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  

  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 608
            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()
      METHOD_RETURN
        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=3, 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 // io.vertx.core.Handler resultHandler
         0: .line 613
            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 614
            aload 2 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 615
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 3 /* coll */
        start local 3 // com.mongodb.async.client.MongoCollection coll
         3: .line 616
            aload 3 /* coll */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.async.client.MongoCollection.listIndexes:(Ljava/lang/Class;)Lcom/mongodb/async/client/ListIndexesIterable;
            astore 4 /* indexes */
        start local 4 // com.mongodb.async.client.ListIndexesIterable indexes
         4: .line 617
            aload 4 /* indexes */
            ifnull 6
         5: .line 618
            aload 0 /* this */
            aload 4 /* indexes */
            aload 2 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertMongoIterable:(Lcom/mongodb/async/client/MongoIterable;Lio/vertx/core/Handler;)V
         6: .line 620
      StackMap locals: com.mongodb.async.client.MongoCollection com.mongodb.async.client.ListIndexesIterable
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // com.mongodb.async.client.ListIndexesIterable indexes
        end local 3 // com.mongodb.async.client.MongoCollection coll
        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    7     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1     collection  Ljava/lang/String;
            0    7     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            3    7     3           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            4    7     4        indexes  Lcom/mongodb/async/client/ListIndexesIterable;
    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.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=4, 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 625
            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 626
            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 627
            aload 3 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 628
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.async.client.MongoCollection coll
         4: .line 629
            aload 4 /* coll */
            aload 2 /* indexName */
            aload 0 /* this */
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoCollection.dropIndex:(Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
         5: .line 630
            aload 0 /* this */
            areturn
        end local 4 // com.mongodb.async.client.MongoCollection coll
        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    6     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    6     1     collection  Ljava/lang/String;
            0    6     2      indexName  Ljava/lang/String;
            0    6     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            4    6     4           coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    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.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=5, locals=6, 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 635
            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 636
            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 637
            aload 3 /* resultHandler */
            ldc "resultHandler cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 640
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 4 /* json */
        start local 4 // io.vertx.core.json.JsonObject json
         4: .line 641
            aload 2 /* command */
            aload 1 /* commandName */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 5 /* commandVal */
        start local 5 // java.lang.Object commandVal
         5: .line 642
            aload 5 /* commandVal */
            ifnonnull 7
         6: .line 643
            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
         7: .line 645
      StackMap locals: io.vertx.core.json.JsonObject java.lang.Object
      StackMap stack:
            aload 4 /* json */
            aload 1 /* commandName */
            aload 5 /* commandVal */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
         8: .line 646
            aload 2 /* command */
            aload 1 /* commandName */
            aload 4 /* 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$8(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
         9: .line 652
            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/async/client/MongoDatabase;
            aload 0 /* this */
            aload 4 /* 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;
            aload 0 /* this */
            aload 3 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.wrapCallback:(Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
            invokeinterface com.mongodb.async.client.MongoDatabase.runCommand:(Lorg/bson/conversions/Bson;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
        10: .line 653
            aload 0 /* this */
            areturn
        end local 5 // java.lang.Object commandVal
        end local 4 // io.vertx.core.json.JsonObject json
        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   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;
            0   11     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonObject;>;>;
            4   11     4           json  Lio/vertx/core/json/JsonObject;
            5   11     5     commandVal  Ljava/lang/Object;
    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.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=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.Handler resultHandler
         0: .line 658
            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
            aload 4 /* resultHandler */
            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/Handler;)Lio/vertx/ext/mongo/MongoClient;
            areturn
        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    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    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<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.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 664
            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/async/client/DistinctIterable;
            astore 6 /* distinctValues */
        start local 6 // com.mongodb.async.client.DistinctIterable distinctValues
         1: .line 665
            aload 6 /* distinctValues */
            ifnull 6
         2: .line 666
            aload 0 /* this */
            aload 6 /* distinctValues */
            aload 5 /* resultHandler */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertMongoIterable:(Lcom/mongodb/async/client/MongoIterable;Lio/vertx/core/Handler;)V
        end local 6 // com.mongodb.async.client.DistinctIterable distinctValues
         3: .line 668
            goto 6
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         4: astore 6 /* e */
        start local 6 // java.lang.ClassNotFoundException e
         5: .line 669
            aload 5 /* resultHandler */
            aload 6 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // java.lang.ClassNotFoundException e
         6: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        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    7     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1       collection  Ljava/lang/String;
            0    7     2        fieldName  Ljava/lang/String;
            0    7     3  resultClassname  Ljava/lang/String;
            0    7     4            query  Lio/vertx/core/json/JsonObject;
            0    7     5    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            1    3     6   distinctValues  Lcom/mongodb/async/client/DistinctIterable;
            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;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.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 676
            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 681
            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=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 // int batchSize
         0: .line 687
            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/async/client/DistinctIterable;
         1: .line 688
            aload 2 /* fieldName */
            invokedynamic apply(Ljava/lang/String;)Lcom/mongodb/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$9(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject; (6)
                  (Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.async.client.DistinctIterable.map:(Lcom/mongodb/Function;)Lcom/mongodb/async/client/MongoIterable;
         2: .line 687
            astore 6 /* distinctValues */
        start local 6 // com.mongodb.async.client.MongoIterable distinctValues
         3: .line 689
            new io.vertx.ext.mongo.impl.MongoIterableStream
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            aload 6 /* distinctValues */
            iload 5 /* batchSize */
            invokespecial io.vertx.ext.mongo.impl.MongoIterableStream.<init>:(Lio/vertx/core/Context;Lcom/mongodb/async/client/MongoIterable;I)V
         4: areturn
        end local 6 // com.mongodb.async.client.MongoIterable distinctValues
         5: .line 690
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 6 /* e */
        start local 6 // java.lang.ClassNotFoundException e
         6: .line 691
            new io.vertx.ext.mongo.impl.MongoClientImpl$FailedStream
            dup
            aload 6 /* e */
            invokespecial io.vertx.ext.mongo.impl.MongoClientImpl$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    7     0             this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    7     1       collection  Ljava/lang/String;
            0    7     2        fieldName  Ljava/lang/String;
            0    7     3  resultClassname  Ljava/lang/String;
            0    7     4            query  Lio/vertx/core/json/JsonObject;
            0    7     5        batchSize  I
            3    5     6   distinctValues  Lcom/mongodb/async/client/MongoIterable<Lio/vertx/core/json/JsonObject;>;
            6    7     6                e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           0     4       5  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.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 697
            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 702
            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/async/client/AggregateIterable;
            astore 4 /* view */
        start local 4 // com.mongodb.async.client.MongoIterable view
         1: .line 703
            new io.vertx.ext.mongo.impl.MongoIterableStream
            dup
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            aload 4 /* view */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            invokespecial io.vertx.ext.mongo.impl.MongoIterableStream.<init>:(Lio/vertx/core/Context;Lcom/mongodb/async/client/MongoIterable;I)V
            areturn
        end local 4 // com.mongodb.async.client.MongoIterable 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/async/client/MongoIterable<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 void convertMongoIterable(com.mongodb.async.client.MongoIterable, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>);
    descriptor: (Lcom/mongodb/async/client/MongoIterable;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // com.mongodb.async.client.MongoIterable iterable
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 707
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* results */
        start local 3 // java.util.List results
         1: .line 709
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            astore 4 /* context */
        start local 4 // io.vertx.core.Context context
         2: .line 710
            aload 1 /* iterable */
            aload 3 /* results */
            aload 4 /* context */
            aload 2 /* resultHandler */
            invokedynamic onResult(Lio/vertx/core/Context;Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
              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/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoClientImpl.lambda$10(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Object;Ljava/lang/Throwable;)V
            invokeinterface com.mongodb.async.client.MongoIterable.into:(Ljava/util/Collection;Lcom/mongodb/async/SingleResultCallback;)V
        end local 4 // io.vertx.core.Context context
         3: .line 719
            goto 6
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl com.mongodb.async.client.MongoIterable io.vertx.core.Handler java.util.List
      StackMap stack: java.lang.Exception
         4: astore 4 /* unhandledEx */
        start local 4 // java.lang.Exception unhandledEx
         5: .line 720
            aload 2 /* resultHandler */
            aload 4 /* unhandledEx */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 4 // java.lang.Exception unhandledEx
         6: .line 723
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.List results
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // com.mongodb.async.client.MongoIterable iterable
        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       iterable  Lcom/mongodb/async/client/MongoIterable;
            0    7     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;
            1    7     3        results  Ljava/util/List;
            2    3     4        context  Lio/vertx/core/Context;
            5    6     4    unhandledEx  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception
    Signature: (Lcom/mongodb/async/client/MongoIterable;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/json/JsonArray;>;>;)V
    MethodParameters:
               Name  Flags
      iterable       
      resultHandler  

  private com.mongodb.async.client.DistinctIterable<?> 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/async/client/DistinctIterable;
    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 726
            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 727
            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 728
            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 730
            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 732
            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 734
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 7 /* mongoCollection */
        start local 7 // com.mongodb.async.client.MongoCollection mongoCollection
         6: .line 735
            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 736
            aload 7 /* mongoCollection */
            aload 2 /* fieldName */
            aload 6 /* bquery */
            aload 8 /* resultClass */
            invokeinterface com.mongodb.async.client.MongoCollection.distinct:(Ljava/lang/String;Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/DistinctIterable;
            areturn
        end local 8 // java.lang.Class resultClass
        end local 7 // com.mongodb.async.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/async/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/async/client/DistinctIterable<*>;
    MethodParameters:
                 Name  Flags
      collection       
      fieldName        
      resultClassname  
      query            

  private com.mongodb.async.client.AggregateIterable<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/async/client/AggregateIterable;
    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 740
            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 741
            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 742
            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 743
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.async.client.MongoCollection coll
         4: .line 744
            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 745
            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$12(Ljava/util/List;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         6: .line 746
            aload 4 /* coll */
            aload 5 /* bpipeline */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.async.client.MongoCollection.aggregate:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            astore 6 /* aggregate */
        start local 6 // com.mongodb.async.client.AggregateIterable aggregate
         7: .line 748
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            iconst_m1
            if_icmpeq 9
         8: .line 749
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getBatchSize:()I
            invokeinterface com.mongodb.async.client.AggregateIterable.batchSize:(I)Lcom/mongodb/async/client/AggregateIterable;
            pop
         9: .line 751
      StackMap locals: com.mongodb.async.client.MongoCollection java.util.List com.mongodb.async.client.AggregateIterable
      StackMap stack:
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getMaxTime:()J
            lconst_0
            lcmp
            ifle 11
        10: .line 752
            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.async.client.AggregateIterable.maxTime:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/async/client/AggregateIterable;
            pop
        11: .line 754
      StackMap locals:
      StackMap stack:
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getMaxAwaitTime:()J
            lconst_0
            lcmp
            ifle 13
        12: .line 755
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getMaxAwaitTime:()J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface com.mongodb.async.client.AggregateIterable.maxAwaitTime:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/async/client/AggregateIterable;
            pop
        13: .line 757
      StackMap locals:
      StackMap stack:
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getAllowDiskUse:()Ljava/lang/Boolean;
            ifnull 15
        14: .line 758
            aload 6 /* aggregate */
            aload 3 /* aggregateOptions */
            invokevirtual io.vertx.ext.mongo.AggregateOptions.getAllowDiskUse:()Ljava/lang/Boolean;
            invokeinterface com.mongodb.async.client.AggregateIterable.allowDiskUse:(Ljava/lang/Boolean;)Lcom/mongodb/async/client/AggregateIterable;
            pop
        15: .line 760
      StackMap locals:
      StackMap stack:
            aload 6 /* aggregate */
            areturn
        end local 6 // com.mongodb.async.client.AggregateIterable aggregate
        end local 5 // java.util.List bpipeline
        end local 4 // com.mongodb.async.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   16     0              this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0   16     1        collection  Ljava/lang/String;
            0   16     2          pipeline  Lio/vertx/core/json/JsonArray;
            0   16     3  aggregateOptions  Lio/vertx/ext/mongo/AggregateOptions;
            4   16     4              coll  Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            5   16     5         bpipeline  Ljava/util/List<Lorg/bson/conversions/Bson;>;
            7   16     6         aggregate  Lcom/mongodb/async/client/AggregateIterable<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonArray;Lio/vertx/ext/mongo/AggregateOptions;)Lcom/mongodb/async/client/AggregateIterable<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                  Name  Flags
      collection        final
      pipeline          final
      aggregateOptions  final

  private io.vertx.core.json.JsonObject encodeKeyWhenUseObjectId(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE
    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 764
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifne 1
            aload 1 /* json */
            areturn
         1: .line 766
      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 767
            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 768
            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;Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            pop
         4: .line 771
      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 775
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.useObjectId:Z
            ifne 1
            aload 1 /* json */
            areturn
         1: .line 777
      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 778
            aload 2 /* idField */
            instanceof io.vertx.core.json.JsonObject
            ifne 3
            aload 1 /* json */
            areturn
         3: .line 780
      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 781
            aload 3 /* idString */
            instanceof java.lang.String
            ifne 5
            aload 1 /* json */
            areturn
         5: .line 783
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* json */
            ldc "_id"
            aload 3 /* idString */
            checkcast java.lang.String
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            pop
         6: .line 785
            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 <T, R> com.mongodb.async.SingleResultCallback<T> convertCallback(io.vertx.core.Handler<io.vertx.core.AsyncResult<R>>, java.util.function.Function<T, R>);
    descriptor: (Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
    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 // io.vertx.core.Handler resultHandler
        start local 2 // java.util.function.Function converter
         0: .line 789
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            astore 3 /* context */
        start local 3 // io.vertx.core.Context context
         1: .line 790
            aload 3 /* context */
            aload 1 /* resultHandler */
            aload 2 /* converter */
            invokedynamic onResult(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
              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/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoClientImpl.lambda$13(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Object;Ljava/lang/Throwable;)V
            areturn
        end local 3 // io.vertx.core.Context context
        end local 2 // java.util.function.Function converter
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TR;>;>;
            0    2     2      converter  Ljava/util/function/Function<TT;TR;>;
            1    2     3        context  Lio/vertx/core/Context;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TR;>;>;Ljava/util/function/Function<TT;TR;>;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
               Name  Flags
      resultHandler  
      converter      

  private <T> io.vertx.core.Handler<io.vertx.core.AsyncResult<T>> toVoidAsyncResult(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, 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 802
            aload 1 /* resultHandler */
            invokedynamic handle(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              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$15(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            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<Ljava/lang/Void;>;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    MethodParameters:
               Name  Flags
      resultHandler  

  private com.mongodb.async.SingleResultCallback<com.mongodb.client.result.UpdateResult> toMongoClientUpdateResult(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientUpdateResult>>);
    descriptor: (Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
    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.core.Handler resultHandler
         0: .line 812
            aload 0 /* this */
            aload 1 /* resultHandler */
            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$16(Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult; (7)
                  (Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            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/MongoClientUpdateResult;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientUpdateResult;>;>;)Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/UpdateResult;>;
    MethodParameters:
               Name  Flags
      resultHandler  

  private com.mongodb.async.SingleResultCallback<com.mongodb.client.result.DeleteResult> toMongoClientDeleteResult(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientDeleteResult>>);
    descriptor: (Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
    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.core.Handler resultHandler
         0: .line 822
            aload 0 /* this */
            aload 1 /* resultHandler */
            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/MongoClientImpl.lambda$17(Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult; (6)
                  (Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            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/MongoClientDeleteResult;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientDeleteResult;>;>;)Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/client/result/DeleteResult;>;
    MethodParameters:
               Name  Flags
      resultHandler  

  private com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult> toMongoClientBulkWriteResult(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.mongo.MongoClientBulkWriteResult>>);
    descriptor: (Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
    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.core.Handler resultHandler
         0: .line 832
            aload 0 /* this */
            aload 1 /* resultHandler */
            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$18(Lcom/mongodb/bulk/BulkWriteResult;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult; (7)
                  (Lcom/mongodb/bulk/BulkWriteResult;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertCallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lcom/mongodb/async/SingleResultCallback;
            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/MongoClientBulkWriteResult;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/mongo/MongoClientBulkWriteResult;>;>;)Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    MethodParameters:
               Name  Flags
      resultHandler  

  private io.vertx.ext.mongo.MongoClientBulkWriteResult convertToMongoClientBulkWriteResult(int, int, int, int, java.util.List<com.mongodb.bulk.BulkWriteUpsert>);
    descriptor: (IIIILjava/util/List;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=7, args_size=6
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // int insertedCount
        start local 2 // int matchedCount
        start local 3 // int deletedCount
        start local 4 // int modifiedCount
        start local 5 // java.util.List upserts
         0: .line 846
            aload 5 /* upserts */
            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$19(Lcom/mongodb/bulk/BulkWriteUpsert;)Lio/vertx/core/json/JsonObject; (7)
                  (Lcom/mongodb/bulk/BulkWriteUpsert;)Lio/vertx/core/json/JsonObject;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         1: .line 850
            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
         2: .line 846
            astore 6 /* upsertResult */
        start local 6 // java.util.List upsertResult
         3: .line 851
            new io.vertx.ext.mongo.MongoClientBulkWriteResult
            dup
            iload 1 /* insertedCount */
            i2l
            iload 2 /* matchedCount */
            i2l
            iload 3 /* deletedCount */
            i2l
            iload 4 /* modifiedCount */
            i2l
            aload 6 /* upsertResult */
            invokespecial io.vertx.ext.mongo.MongoClientBulkWriteResult.<init>:(JJJJLjava/util/List;)V
            areturn
        end local 6 // java.util.List upsertResult
        end local 5 // java.util.List upserts
        end local 4 // int modifiedCount
        end local 3 // int deletedCount
        end local 2 // int matchedCount
        end local 1 // int insertedCount
        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  insertedCount  I
            0    4     2   matchedCount  I
            0    4     3   deletedCount  I
            0    4     4  modifiedCount  I
            0    4     5        upserts  Ljava/util/List<Lcom/mongodb/bulk/BulkWriteUpsert;>;
            3    4     6   upsertResult  Ljava/util/List<Lio/vertx/core/json/JsonObject;>;
    Signature: (IIIILjava/util/List<Lcom/mongodb/bulk/BulkWriteUpsert;>;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
    MethodParameters:
               Name  Flags
      insertedCount  
      matchedCount   
      deletedCount   
      modifiedCount  
      upserts        

  private <T> com.mongodb.async.SingleResultCallback<T> wrapCallback(io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0002) ACC_PRIVATE
    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 855
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
            astore 2 /* context */
        start local 2 // io.vertx.core.Context context
         1: .line 856
            aload 2 /* context */
            aload 1 /* resultHandler */
            invokedynamic onResult(Lio/vertx/core/Context;Lio/vertx/core/Handler;)Lcom/mongodb/async/SingleResultCallback;
              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/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoClientImpl.lambda$20(Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Object;Ljava/lang/Throwable;)V
            areturn
        end local 2 // io.vertx.core.Context context
        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    2     0           this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
            1    2     2        context  Lio/vertx/core/Context;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
               Name  Flags
      resultHandler  

  private com.mongodb.async.client.FindIterable<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/async/client/FindIterable;
    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 868
            aload 0 /* this */
            aload 1 /* collection */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.getCollection:(Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
            astore 4 /* coll */
        start local 4 // com.mongodb.async.client.MongoCollection coll
         1: .line 869
            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 870
            aload 4 /* coll */
            aload 5 /* bquery */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.async.client.MongoCollection.find:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Lcom/mongodb/async/client/FindIterable;
            astore 6 /* find */
        start local 6 // com.mongodb.async.client.FindIterable find
         3: .line 871
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getLimit:()I
            iconst_m1
            if_icmpeq 5
         4: .line 872
            aload 6 /* find */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getLimit:()I
            invokeinterface com.mongodb.async.client.FindIterable.limit:(I)Lcom/mongodb/async/client/FindIterable;
            pop
         5: .line 874
      StackMap locals: com.mongodb.async.client.MongoCollection org.bson.conversions.Bson com.mongodb.async.client.FindIterable
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSkip:()I
            ifle 7
         6: .line 875
            aload 6 /* find */
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSkip:()I
            invokeinterface com.mongodb.async.client.FindIterable.skip:(I)Lcom/mongodb/async/client/FindIterable;
            pop
         7: .line 877
      StackMap locals:
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getSort:()Lio/vertx/core/json/JsonObject;
            ifnull 9
         8: .line 878
            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.async.client.FindIterable.sort:(Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
            pop
         9: .line 880
      StackMap locals:
      StackMap stack:
            aload 3 /* options */
            invokevirtual io.vertx.ext.mongo.FindOptions.getFields:()Lio/vertx/core/json/JsonObject;
            ifnull 11
        10: .line 881
            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.async.client.FindIterable.projection:(Lorg/bson/conversions/Bson;)Lcom/mongodb/async/client/FindIterable;
            pop
        11: .line 883
      StackMap locals:
      StackMap stack:
            aload 6 /* find */
            areturn
        end local 6 // com.mongodb.async.client.FindIterable find
        end local 5 // org.bson.conversions.Bson bquery
        end local 4 // com.mongodb.async.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/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
            2   12     5      bquery  Lorg/bson/conversions/Bson;
            3   12     6        find  Lcom/mongodb/async/client/FindIterable<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/json/JsonObject;Lio/vertx/ext/mongo/FindOptions;)Lcom/mongodb/async/client/FindIterable<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
            Name  Flags
      collection  
      query       
      options     

  private com.mongodb.async.client.MongoCollection<io.vertx.core.json.JsonObject> getCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/async/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 887
            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/async/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/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
      Name  Flags
      name  

  private com.mongodb.async.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/async/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 891
            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/async/client/MongoDatabase;
            aload 1 /* name */
            ldc Lio/vertx/core/json/JsonObject;
            invokeinterface com.mongodb.async.client.MongoDatabase.getCollection:(Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MongoCollection;
            astore 3 /* coll */
        start local 3 // com.mongodb.async.client.MongoCollection coll
         1: .line 892
            aload 3 /* coll */
            ifnull 3
            aload 2 /* writeOption */
            ifnull 3
         2: .line 893
            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.async.client.MongoCollection.withWriteConcern:(Lcom/mongodb/WriteConcern;)Lcom/mongodb/async/client/MongoCollection;
            astore 3 /* coll */
         3: .line 895
      StackMap locals: com.mongodb.async.client.MongoCollection
      StackMap stack:
            aload 3 /* coll */
            areturn
        end local 3 // com.mongodb.async.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/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    Signature: (Ljava/lang/String;Lio/vertx/ext/mongo/WriteOption;)Lcom/mongodb/async/client/MongoCollection<Lio/vertx/core/json/JsonObject;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
             Name  Flags
      name         
      writeOption  

  private static com.mongodb.client.model.UpdateOptions mongoUpdateOptions(io.vertx.ext.mongo.UpdateOptions);
    descriptor: (Lio/vertx/ext/mongo/UpdateOptions;)Lcom/mongodb/client/model/UpdateOptions;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.UpdateOptions options
         0: .line 899
            new com.mongodb.client.model.UpdateOptions
            dup
            invokespecial com.mongodb.client.model.UpdateOptions.<init>:()V
            aload 0 /* options */
            invokevirtual io.vertx.ext.mongo.UpdateOptions.isUpsert:()Z
            invokevirtual com.mongodb.client.model.UpdateOptions.upsert:(Z)Lcom/mongodb/client/model/UpdateOptions;
            areturn
        end local 0 // io.vertx.ext.mongo.UpdateOptions options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lio/vertx/ext/mongo/UpdateOptions;
    MethodParameters:
         Name  Flags
      options  

  private 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: (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.core.json.JsonObject jsonObject
         0: .line 904
            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 908
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            dup
            astore 3
            monitorenter
         1: .line 909
            aload 1 /* map */
            aload 2 /* dataSourceName */
            invokeinterface io.vertx.core.shareddata.LocalMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 910
            aload 1 /* map */
            invokeinterface io.vertx.core.shareddata.LocalMap.isEmpty:()Z
            ifeq 4
         3: .line 911
            aload 1 /* map */
            invokeinterface io.vertx.core.shareddata.LocalMap.close:()V
         4: .line 908
      StackMap locals: io.vertx.core.Vertx
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 914
      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 917
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            dup
            astore 3
            monitorenter
         1: .line 918
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoClientImpl.vertx:Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.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 919
            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 920
            aload 5 /* theHolder */
            ifnonnull 7
         4: .line 921
            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$22(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 922
            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 923
            goto 8
         7: .line 924
      StackMap locals: io.vertx.core.Vertx 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 926
      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 917
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl java.lang.String io.vertx.core.json.JsonObject io.vertx.core.Vertx
      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          

  private io.vertx.ext.mongo.MongoClientUpdateResult convertToMongoClientUpdateResult(long, org.bson.BsonValue, long);
    descriptor: (JLorg/bson/BsonValue;J)Lio/vertx/ext/mongo/MongoClientUpdateResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // long docMatched
        start local 3 // org.bson.BsonValue upsertId
        start local 4 // long docModified
         0: .line 931
            new io.vertx.ext.mongo.MongoClientUpdateResult
            dup
            lload 1 /* docMatched */
            aload 0 /* this */
            aload 3 /* upsertId */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertUpsertId:(Lorg/bson/BsonValue;)Lio/vertx/core/json/JsonObject;
            lload 4 /* docModified */
            invokespecial io.vertx.ext.mongo.MongoClientUpdateResult.<init>:(JLio/vertx/core/json/JsonObject;J)V
            areturn
        end local 4 // long docModified
        end local 3 // org.bson.BsonValue upsertId
        end local 1 // long docMatched
        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   docMatched  J
            0    1     3     upsertId  Lorg/bson/BsonValue;
            0    1     4  docModified  J
    MethodParameters:
             Name  Flags
      docMatched   
      upsertId     
      docModified  

  private io.vertx.core.json.JsonObject convertUpsertId(org.bson.BsonValue);
    descriptor: (Lorg/bson/BsonValue;)Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // org.bson.BsonValue upsertId
         0: .line 937
            aload 1 /* upsertId */
            ifnull 7
         1: .line 938
            new io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec
            dup
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokespecial io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec.<init>:(Lio/vertx/core/json/JsonObject;)V
            astore 3 /* jsonObjectCodec */
        start local 3 // io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec jsonObjectCodec
         2: .line 940
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            astore 4 /* upsertIdDocument */
        start local 4 // org.bson.BsonDocument upsertIdDocument
         3: .line 941
            aload 4 /* upsertIdDocument */
            ldc "_id"
            aload 1 /* upsertId */
            invokevirtual org.bson.BsonDocument.append:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonDocument;
            pop
         4: .line 943
            new org.bson.BsonDocumentReader
            dup
            aload 4 /* upsertIdDocument */
            invokespecial org.bson.BsonDocumentReader.<init>:(Lorg/bson/BsonDocument;)V
            astore 5 /* bsonDocumentReader */
        start local 5 // org.bson.BsonDocumentReader bsonDocumentReader
         5: .line 944
            aload 3 /* jsonObjectCodec */
            aload 5 /* bsonDocumentReader */
            invokestatic org.bson.codecs.DecoderContext.builder:()Lorg/bson/codecs/DecoderContext$Builder;
            invokevirtual org.bson.codecs.DecoderContext$Builder.build:()Lorg/bson/codecs/DecoderContext;
            invokevirtual io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            checkcast io.vertx.core.json.JsonObject
            astore 2 /* jsonUpsertId */
        end local 5 // org.bson.BsonDocumentReader bsonDocumentReader
        end local 4 // org.bson.BsonDocument upsertIdDocument
        end local 3 // io.vertx.ext.mongo.impl.codec.json.JsonObjectCodec jsonObjectCodec
        start local 2 // io.vertx.core.json.JsonObject jsonUpsertId
         6: .line 945
            goto 8
        end local 2 // io.vertx.core.json.JsonObject jsonUpsertId
         7: .line 946
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* jsonUpsertId */
        start local 2 // io.vertx.core.json.JsonObject jsonUpsertId
         8: .line 948
      StackMap locals: io.vertx.core.json.JsonObject
      StackMap stack:
            aload 2 /* jsonUpsertId */
            areturn
        end local 2 // io.vertx.core.json.JsonObject jsonUpsertId
        end local 1 // org.bson.BsonValue upsertId
        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            upsertId  Lorg/bson/BsonValue;
            6    7     2        jsonUpsertId  Lio/vertx/core/json/JsonObject;
            8    9     2        jsonUpsertId  Lio/vertx/core/json/JsonObject;
            2    6     3     jsonObjectCodec  Lio/vertx/ext/mongo/impl/codec/json/JsonObjectCodec;
            3    6     4    upsertIdDocument  Lorg/bson/BsonDocument;
            5    6     5  bsonDocumentReader  Lorg/bson/BsonDocumentReader;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
      METHOD_RETURN
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
          Name  Flags
      upsertId  

  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 92
            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 wr
         0: .line 140
            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 wr
        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    wr  Ljava/lang/Void;

  private static java.lang.String lambda$1(com.mongodb.client.result.UpdateResult);
    descriptor: (Lcom/mongodb/client/result/UpdateResult;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.result.UpdateResult result
         0: .line 149
            aconst_null
            areturn
        end local 0 // com.mongodb.client.result.UpdateResult result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  result  Lcom/mongodb/client/result/UpdateResult;

  private java.lang.String lambda$2(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=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 3 // java.lang.Void wr
         0: .line 171
            iload 1
            ifeq 1
            aconst_null
            areturn
         1: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.decodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            astore 4 /* decodedDocument */
        start local 4 // io.vertx.core.json.JsonObject decodedDocument
         2: .line 174
            aload 4 /* decodedDocument */
            ldc "_id"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 4 // io.vertx.core.json.JsonObject decodedDocument
        end local 3 // java.lang.Void wr
        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               wr  Ljava/lang/Void;
            2    3     4  decodedDocument  Lio/vertx/core/json/JsonObject;

  private java.util.List lambda$3(java.util.List, java.util.List);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    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.util.List wr
         0: .line 288
            aload 1
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/ext/mongo/impl/MongoClientImpl;)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.decodeKeyWhenUseObjectId(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject; (7)
                  (Lio/vertx/core/json/JsonObject;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         1: .line 289
            aload 1
            areturn
        end local 2 // java.util.List wr
        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     2    wr  Ljava/util/List<Lio/vertx/core/json/JsonObject;>;

  private io.vertx.core.json.JsonObject lambda$5(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 313
            aload 1 /* object */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.decodeKeyWhenUseObjectId:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
            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    2     0    this  Lio/vertx/ext/mongo/impl/MongoClientImpl;
            0    2     1  object  Lio/vertx/core/json/JsonObject;

  private static void lambda$6(io.vertx.core.Context, io.vertx.core.Handler, java.util.List, java.util.List, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/List;Ljava/util/List;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 3 // java.util.List res
        start local 4 // java.lang.Throwable error
         0: .line 552
            aload 0
            aload 4 /* error */
            aload 1
            aload 2
            invokedynamic handle(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/List;)Lio/vertx/core/Handler;
              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/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/List;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 559
            return
        end local 4 // java.lang.Throwable error
        end local 3 // java.util.List res
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     3    res  Ljava/util/List<Ljava/lang/String;>;
            0    2     4  error  Ljava/lang/Throwable;

  private static void lambda$8(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 647
            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 648
            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 650
      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$9(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 688
            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 static void lambda$10(io.vertx.core.Context, io.vertx.core.Handler, java.lang.Object, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 2 // java.lang.Object result
        start local 3 // java.lang.Throwable throwable
         0: .line 711
            aload 0
            aload 3 /* throwable */
            aload 1
            aload 2 /* result */
            invokedynamic handle(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;)Lio/vertx/core/Handler;
              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$11(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 718
            return
        end local 3 // java.lang.Throwable throwable
        end local 2 // java.lang.Object result
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     2     result  Ljava/lang/Object;
            0    2     3  throwable  Ljava/lang/Throwable;

  private void lambda$12(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 745
            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 static void lambda$13(io.vertx.core.Context, io.vertx.core.Handler, java.util.function.Function, java.lang.Object, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 3 // java.lang.Object result
        start local 4 // java.lang.Throwable error
         0: .line 791
            aload 0
            aload 4 /* error */
            aload 1
            aload 2
            aload 3 /* result */
            invokedynamic handle(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/function/Function;Ljava/lang/Object;)Lio/vertx/core/Handler;
              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$14(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 798
            return
        end local 4 // java.lang.Throwable error
        end local 3 // java.lang.Object result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     3  result  TT;
            0    2     4   error  Ljava/lang/Throwable;

  private static void lambda$15(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult result
         0: .line 803
            aload 1 /* result */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 3
         1: .line 804
            aload 0
            aconst_null
            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 805
            goto 4
         3: .line 806
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* result */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 808
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     1  result  Lio/vertx/core/AsyncResult<TT;>;

  private io.vertx.ext.mongo.MongoClientUpdateResult lambda$16(com.mongodb.client.result.UpdateResult);
    descriptor: (Lcom/mongodb/client/result/UpdateResult;)Lio/vertx/ext/mongo/MongoClientUpdateResult;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // com.mongodb.client.result.UpdateResult result
         0: .line 813
            aload 1 /* result */
            invokevirtual com.mongodb.client.result.UpdateResult.wasAcknowledged:()Z
            ifeq 2
         1: .line 814
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual com.mongodb.client.result.UpdateResult.getMatchedCount:()J
            aload 1 /* result */
            invokevirtual com.mongodb.client.result.UpdateResult.getUpsertedId:()Lorg/bson/BsonValue;
            aload 1 /* result */
            invokevirtual com.mongodb.client.result.UpdateResult.getModifiedCount:()J
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertToMongoClientUpdateResult:(JLorg/bson/BsonValue;J)Lio/vertx/ext/mongo/MongoClientUpdateResult;
            areturn
         2: .line 816
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.mongodb.client.result.UpdateResult result
        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  result  Lcom/mongodb/client/result/UpdateResult;

  private static io.vertx.ext.mongo.MongoClientDeleteResult lambda$17(com.mongodb.client.result.DeleteResult);
    descriptor: (Lcom/mongodb/client/result/DeleteResult;)Lio/vertx/ext/mongo/MongoClientDeleteResult;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.mongodb.client.result.DeleteResult result
         0: .line 823
            aload 0 /* result */
            invokevirtual com.mongodb.client.result.DeleteResult.wasAcknowledged:()Z
            ifeq 2
         1: .line 824
            new io.vertx.ext.mongo.MongoClientDeleteResult
            dup
            aload 0 /* result */
            invokevirtual com.mongodb.client.result.DeleteResult.getDeletedCount:()J
            invokespecial io.vertx.ext.mongo.MongoClientDeleteResult.<init>:(J)V
            areturn
         2: .line 826
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.mongodb.client.result.DeleteResult result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  result  Lcom/mongodb/client/result/DeleteResult;

  private io.vertx.ext.mongo.MongoClientBulkWriteResult lambda$18(com.mongodb.bulk.BulkWriteResult);
    descriptor: (Lcom/mongodb/bulk/BulkWriteResult;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // com.mongodb.bulk.BulkWriteResult result
         0: .line 833
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.wasAcknowledged:()Z
            ifeq 7
         1: .line 834
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getInsertedCount:()I
         2: .line 835
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getMatchedCount:()I
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getDeletedCount:()I
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.isModifiedCountAvailable:()Z
            ifeq 4
         3: .line 836
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getModifiedCount:()I
            goto 5
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl com.mongodb.bulk.BulkWriteResult
      StackMap stack: io.vertx.ext.mongo.impl.MongoClientImpl int int int
         4: iconst_0
         5: .line 837
      StackMap locals: io.vertx.ext.mongo.impl.MongoClientImpl com.mongodb.bulk.BulkWriteResult
      StackMap stack: io.vertx.ext.mongo.impl.MongoClientImpl int int int int
            aload 1 /* result */
            invokevirtual com.mongodb.bulk.BulkWriteResult.getUpserts:()Ljava/util/List;
         6: .line 834
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertToMongoClientBulkWriteResult:(IIIILjava/util/List;)Lio/vertx/ext/mongo/MongoClientBulkWriteResult;
            areturn
         7: .line 839
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.mongodb.bulk.BulkWriteResult result
        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  result  Lcom/mongodb/bulk/BulkWriteResult;

  private io.vertx.core.json.JsonObject lambda$19(com.mongodb.bulk.BulkWriteUpsert);
    descriptor: (Lcom/mongodb/bulk/BulkWriteUpsert;)Lio/vertx/core/json/JsonObject;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoClientImpl this
        start local 1 // com.mongodb.bulk.BulkWriteUpsert upsert
         0: .line 847
            aload 0 /* this */
            aload 1 /* upsert */
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getId:()Lorg/bson/BsonValue;
            invokevirtual io.vertx.ext.mongo.impl.MongoClientImpl.convertUpsertId:(Lorg/bson/BsonValue;)Lio/vertx/core/json/JsonObject;
            astore 2 /* upsertValue */
        start local 2 // io.vertx.core.json.JsonObject upsertValue
         1: .line 848
            aload 2 /* upsertValue */
            ldc "index"
            aload 1 /* upsert */
            invokevirtual com.mongodb.bulk.BulkWriteUpsert.getIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Integer;)Lio/vertx/core/json/JsonObject;
            pop
         2: .line 849
            aload 2 /* upsertValue */
            areturn
        end local 2 // io.vertx.core.json.JsonObject upsertValue
        end local 1 // com.mongodb.bulk.BulkWriteUpsert upsert
        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       upsert  Lcom/mongodb/bulk/BulkWriteUpsert;
            1    3     2  upsertValue  Lio/vertx/core/json/JsonObject;

  private static void lambda$20(io.vertx.core.Context, io.vertx.core.Handler, java.lang.Object, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 2 // java.lang.Object result
        start local 3 // java.lang.Throwable error
         0: .line 857
            aload 0
            aload 3 /* error */
            aload 1
            aload 2 /* result */
            invokedynamic handle(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;)Lio/vertx/core/Handler;
              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$21(Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 864
            return
        end local 3 // java.lang.Throwable error
        end local 2 // java.lang.Object result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     2  result  TT;
            0    2     3   error  Ljava/lang/Throwable;

  private void lambda$22(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 921
            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;

  private static void lambda$7(java.lang.Throwable, io.vertx.core.Handler, java.util.List, java.lang.Void);
    descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/List;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 3 // java.lang.Void v
         0: .line 553
            aload 0
            ifnull 3
         1: .line 554
            aload 1
            aload 0
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 555
            goto 4
         3: .line 556
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 558
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     3     v  Ljava/lang/Void;

  private static void lambda$11(java.lang.Throwable, io.vertx.core.Handler, java.lang.Object, java.lang.Void);
    descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 3 // java.lang.Void v
         0: .line 712
            aload 0
            ifnull 3
         1: .line 713
            aload 1
            aload 0
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 714
            goto 4
         3: .line 715
      StackMap locals:
      StackMap stack:
            aload 1
            new io.vertx.core.json.JsonArray
            dup
            aload 2
            checkcast java.util.List
            invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 717
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     3     v  Ljava/lang/Void;

  private static void lambda$14(java.lang.Throwable, io.vertx.core.Handler, java.util.function.Function, java.lang.Object, java.lang.Void);
    descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=5
        start local 4 // java.lang.Void v
         0: .line 792
            aload 0
            ifnull 3
         1: .line 793
            aload 1
            aload 0
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 794
            goto 4
         3: .line 795
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2
            aload 3
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 797
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     4     v  Ljava/lang/Void;

  private static void lambda$21(java.lang.Throwable, io.vertx.core.Handler, java.lang.Object, java.lang.Void);
    descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Handler;Ljava/lang/Object;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 3 // java.lang.Void v
         0: .line 858
            aload 0
            ifnull 3
         1: .line 859
            aload 1
            aload 0
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 860
            goto 4
         3: .line 861
      StackMap locals:
      StackMap stack:
            aload 1
            aload 2
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 863
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     3     v  Ljava/lang/Void;
}
SourceFile: "MongoClientImpl.java"
NestMembers:
  io.vertx.ext.mongo.impl.MongoClientImpl$FailedStream  io.vertx.ext.mongo.impl.MongoClientImpl$MongoHolder
InnerClasses:
  public final BulkOperationType = io.vertx.ext.mongo.BulkOperation$BulkOperationType of io.vertx.ext.mongo.BulkOperation
  private FailedStream = io.vertx.ext.mongo.impl.MongoClientImpl$FailedStream of io.vertx.ext.mongo.impl.MongoClientImpl
  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
  public final Builder = org.bson.codecs.DecoderContext$Builder of org.bson.codecs.DecoderContext