class com.mongodb.async.client.MongoDatabaseImpl implements com.mongodb.async.client.MongoDatabase
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.mongodb.async.client.MongoDatabaseImpl
  super_class: java.lang.Object
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.ReadPreference readPreference;
    descriptor: Lcom/mongodb/ReadPreference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bson.codecs.configuration.CodecRegistry codecRegistry;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean retryWrites;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean retryReads;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.ReadConcern readConcern;
    descriptor: Lcom/mongodb/ReadConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.async.client.OperationExecutor executor;
    descriptor: Lcom/mongodb/async/client/OperationExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.String, org.bson.codecs.configuration.CodecRegistry, com.mongodb.ReadPreference, com.mongodb.WriteConcern, boolean, boolean, com.mongodb.ReadConcern, com.mongodb.async.client.OperationExecutor);
    descriptor: (Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=9, args_size=9
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String name
        start local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // com.mongodb.WriteConcern writeConcern
        start local 5 // boolean retryWrites
        start local 6 // boolean retryReads
        start local 7 // com.mongodb.ReadConcern readConcern
        start local 8 // com.mongodb.async.client.OperationExecutor executor
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 1 /* name */
            invokestatic com.mongodb.MongoNamespace.checkDatabaseNameValidity:(Ljava/lang/String;)V
         2: .line 63
            aload 0 /* this */
            ldc "name"
            aload 1 /* name */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
         3: .line 64
            aload 0 /* this */
            ldc "codecRegistry"
            aload 2 /* codecRegistry */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.codecs.configuration.CodecRegistry
            putfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 65
            aload 0 /* this */
            ldc "readPreference"
            aload 3 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadPreference
            putfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         5: .line 66
            aload 0 /* this */
            ldc "writeConcern"
            aload 4 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
         6: .line 67
            aload 0 /* this */
            iload 5 /* retryWrites */
            putfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
         7: .line 68
            aload 0 /* this */
            iload 6 /* retryReads */
            putfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
         8: .line 69
            aload 0 /* this */
            ldc "readConcern"
            aload 7 /* readConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.ReadConcern
            putfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 70
            aload 0 /* this */
            ldc "executor"
            aload 8 /* executor */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.async.client.OperationExecutor
            putfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
        10: .line 71
            return
        end local 8 // com.mongodb.async.client.OperationExecutor executor
        end local 7 // com.mongodb.ReadConcern readConcern
        end local 6 // boolean retryReads
        end local 5 // boolean retryWrites
        end local 4 // com.mongodb.WriteConcern writeConcern
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 1 // java.lang.String name
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0   11     1            name  Ljava/lang/String;
            0   11     2   codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            0   11     3  readPreference  Lcom/mongodb/ReadPreference;
            0   11     4    writeConcern  Lcom/mongodb/WriteConcern;
            0   11     5     retryWrites  Z
            0   11     6      retryReads  Z
            0   11     7     readConcern  Lcom/mongodb/ReadConcern;
            0   11     8        executor  Lcom/mongodb/async/client/OperationExecutor;
    MethodParameters:
                Name  Flags
      name            final
      codecRegistry   final
      readPreference  final
      writeConcern    final
      retryWrites     final
      retryReads      final
      readConcern     final
      executor        final

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 75
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;

  public org.bson.codecs.configuration.CodecRegistry getCodecRegistry();
    descriptor: ()Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 80
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;

  public com.mongodb.ReadPreference getReadPreference();
    descriptor: ()Lcom/mongodb/ReadPreference;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 85
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 90
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;

  public com.mongodb.ReadConcern getReadConcern();
    descriptor: ()Lcom/mongodb/ReadConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 95
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;

  public com.mongodb.async.client.MongoDatabase withCodecRegistry(org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Lorg/bson/codecs/configuration/CodecRegistry;)Lcom/mongodb/async/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 100
            new com.mongodb.async.client.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 1 /* codecRegistry */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            invokespecial com.mongodb.async.client.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
               Name  Flags
      codecRegistry  final

  public com.mongodb.async.client.MongoDatabase withReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lcom/mongodb/async/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.ReadPreference readPreference
         0: .line 105
            new com.mongodb.async.client.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 1 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            invokespecial com.mongodb.async.client.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadPreference readPreference
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      readPreference  final

  public com.mongodb.async.client.MongoDatabase withWriteConcern(com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/WriteConcern;)Lcom/mongodb/async/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.WriteConcern writeConcern
         0: .line 110
            new com.mongodb.async.client.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 1 /* writeConcern */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            invokespecial com.mongodb.async.client.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.WriteConcern writeConcern
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  writeConcern  Lcom/mongodb/WriteConcern;
    MethodParameters:
              Name  Flags
      writeConcern  final

  public com.mongodb.async.client.MongoDatabase withReadConcern(com.mongodb.ReadConcern);
    descriptor: (Lcom/mongodb/ReadConcern;)Lcom/mongodb/async/client/MongoDatabase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.ReadConcern readConcern
         0: .line 115
            new com.mongodb.async.client.MongoDatabaseImpl
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
            aload 1 /* readConcern */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            invokespecial com.mongodb.async.client.MongoDatabaseImpl.<init>:(Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 1 // com.mongodb.ReadConcern readConcern
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  readConcern  Lcom/mongodb/ReadConcern;
    MethodParameters:
             Name  Flags
      readConcern  final

  public com.mongodb.async.client.MongoIterable<java.lang.String> listCollectionNames();
    descriptor: ()Lcom/mongodb/async/client/MongoIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 120
            aload 0 /* this */
            aconst_null
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createListCollectionNamesIterable:(Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;
    Signature: ()Lcom/mongodb/async/client/MongoIterable<Ljava/lang/String;>;

  public com.mongodb.async.client.MongoIterable<java.lang.String> listCollectionNames(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 125
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 126
            aload 0 /* this */
            aload 1 /* clientSession */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createListCollectionNamesIterable:(Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable<Ljava/lang/String;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  private com.mongodb.async.client.MongoIterable<java.lang.String> createListCollectionNamesIterable(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 130
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/BsonDocument;
            iconst_1
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/async/client/ListCollectionsIterable;
         1: .line 131
            new com.mongodb.async.client.MongoDatabaseImpl$1
            dup
            aload 0 /* this */
            invokespecial com.mongodb.async.client.MongoDatabaseImpl$1.<init>:(Lcom/mongodb/async/client/MongoDatabaseImpl;)V
            invokeinterface com.mongodb.async.client.ListCollectionsIterable.map:(Lcom/mongodb/Function;)Lcom/mongodb/async/client/MongoIterable;
         2: .line 130
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/MongoIterable<Ljava/lang/String;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

  public com.mongodb.async.client.ListCollectionsIterable<org.bson.Document> listCollections();
    descriptor: ()Lcom/mongodb/async/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 141
            aload 0 /* this */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.listCollections:(Ljava/lang/Class;)Lcom/mongodb/async/client/ListCollectionsIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;
    Signature: ()Lcom/mongodb/async/client/ListCollectionsIterable<Lorg/bson/Document;>;

  public <TResult> com.mongodb.async.client.ListCollectionsIterable<TResult> listCollections(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 146
            aload 0 /* this */
            aconst_null
            aload 1 /* resultClass */
            iconst_0
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/async/client/ListCollectionsIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ListCollectionsIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.async.client.ListCollectionsIterable<org.bson.Document> listCollections(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 151
            aload 0 /* this */
            aload 1 /* clientSession */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.listCollections:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListCollectionsIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ListCollectionsIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.async.client.ListCollectionsIterable<TResult> listCollections(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ListCollectionsIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 156
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 157
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* resultClass */
            iconst_0
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createListCollectionsIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/async/client/ListCollectionsIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ListCollectionsIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  private <TResult> com.mongodb.async.client.ListCollectionsIterable<TResult> createListCollectionsIterable(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>, boolean);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;Z)Lcom/mongodb/async/client/ListCollectionsIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
        start local 3 // boolean collectionNamesOnly
         0: .line 163
            new com.mongodb.async.client.ListCollectionsIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            iload 3 /* collectionNamesOnly */
            aload 2 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 164
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
         2: .line 163
            invokespecial com.mongodb.async.client.ListCollectionsIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;ZLjava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/client/OperationExecutor;Z)V
            areturn
        end local 3 // boolean collectionNamesOnly
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1        clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2          resultClass  Ljava/lang/Class<TTResult;>;
            0    3     3  collectionNamesOnly  Z
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;Z)Lcom/mongodb/async/client/ListCollectionsIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
                     Name  Flags
      clientSession        final
      resultClass          final
      collectionNamesOnly  final

  public com.mongodb.async.client.MongoCollection<org.bson.Document> getCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
         0: .line 169
            aload 0 /* this */
            aload 1 /* collectionName */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.getCollection:(Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MongoCollection;
            areturn
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  collectionName  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lcom/mongodb/async/client/MongoCollection<Lorg/bson/Document;>;
    MethodParameters:
                Name  Flags
      collectionName  final

  public <TDocument> com.mongodb.async.client.MongoCollection<TDocument> getCollection(java.lang.String, java.lang.Class<TDocument>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Lcom/mongodb/async/client/MongoCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
        start local 2 // java.lang.Class documentClass
         0: .line 174
            new com.mongodb.async.client.MongoCollectionImpl
            dup
            new com.mongodb.MongoNamespace
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 1 /* collectionName */
            invokespecial com.mongodb.MongoNamespace.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aload 2 /* documentClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 175
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryWrites:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
         2: .line 174
            invokespecial com.mongodb.async.client.MongoCollectionImpl.<init>:(Lcom/mongodb/MongoNamespace;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;)V
            areturn
        end local 2 // java.lang.Class documentClass
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  collectionName  Ljava/lang/String;
            0    3     2   documentClass  Ljava/lang/Class<TTDocument;>;
    Signature: <TDocument:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TTDocument;>;)Lcom/mongodb/async/client/MongoCollection<TTDocument;>;
    MethodParameters:
                Name  Flags
      collectionName  final
      documentClass   final

  public void runCommand(org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<org.bson.Document>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 180
            aload 0 /* this */
            aload 1 /* command */
            ldc Lorg/bson/Document;
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 181
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1   command  Lorg/bson/conversions/Bson;
            0    2     2  callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;)V
    MethodParameters:
          Name  Flags
      command   final
      callback  final

  public void runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference, com.mongodb.async.SingleResultCallback<org.bson.Document>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 185
            aload 0 /* this */
            aload 1 /* command */
            aload 2 /* readPreference */
            ldc Lorg/bson/Document;
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 186
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1         command  Lorg/bson/conversions/Bson;
            0    2     2  readPreference  Lcom/mongodb/ReadPreference;
            0    2     3        callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;
    Signature: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;)V
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final
      callback        final

  public <TResult> void runCommand(org.bson.conversions.Bson, java.lang.Class<TResult>, com.mongodb.async.SingleResultCallback<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // java.lang.Class resultClass
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 191
            aload 0 /* this */
            aload 1 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 2 /* resultClass */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 192
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.Class resultClass
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1      command  Lorg/bson/conversions/Bson;
            0    2     2  resultClass  Ljava/lang/Class<TTResult;>;
            0    2     3     callback  Lcom/mongodb/async/SingleResultCallback<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;Lcom/mongodb/async/SingleResultCallback<TTResult;>;)V
    MethodParameters:
             Name  Flags
      command      final
      resultClass  final
      callback     final

  public <TResult> void runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>, com.mongodb.async.SingleResultCallback<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // java.lang.Class resultClass
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 197
            aload 0 /* this */
            aconst_null
            aload 1 /* command */
            aload 2 /* readPreference */
            aload 3 /* resultClass */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 198
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.lang.Class resultClass
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1         command  Lorg/bson/conversions/Bson;
            0    2     2  readPreference  Lcom/mongodb/ReadPreference;
            0    2     3     resultClass  Ljava/lang/Class<TTResult;>;
            0    2     4        callback  Lcom/mongodb/async/SingleResultCallback<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;Lcom/mongodb/async/SingleResultCallback<TTResult;>;)V
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final
      resultClass     final
      callback        final

  public void runCommand(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.async.SingleResultCallback<org.bson.Document>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 202
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            ldc Lorg/bson/Document;
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 203
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2        command  Lorg/bson/conversions/Bson;
            0    2     3       callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      command        final
      callback       final

  public void runCommand(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, com.mongodb.async.SingleResultCallback<org.bson.Document>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 208
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            ldc Lorg/bson/Document;
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 209
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2         command  Lorg/bson/conversions/Bson;
            0    2     3  readPreference  Lcom/mongodb/ReadPreference;
            0    2     4        callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/Document;>;)V
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      callback        final

  public <TResult> void runCommand(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, java.lang.Class<TResult>, com.mongodb.async.SingleResultCallback<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // java.lang.Class resultClass
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 214
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 3 /* resultClass */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.runCommand:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 215
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.lang.Class resultClass
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2        command  Lorg/bson/conversions/Bson;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
            0    2     4       callback  Lcom/mongodb/async/SingleResultCallback<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Ljava/lang/Class<TTResult;>;Lcom/mongodb/async/SingleResultCallback<TTResult;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      command        final
      resultClass    final
      callback       final

  public <TResult> void runCommand(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>, com.mongodb.async.SingleResultCallback<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // java.lang.Class resultClass
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 220
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 221
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            aload 4 /* resultClass */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 222
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // java.lang.Class resultClass
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2         command  Lorg/bson/conversions/Bson;
            0    3     3  readPreference  Lcom/mongodb/ReadPreference;
            0    3     4     resultClass  Ljava/lang/Class<TTResult;>;
            0    3     5        callback  Lcom/mongodb/async/SingleResultCallback<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;Lcom/mongodb/async/SingleResultCallback<TTResult;>;)V
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final
      callback        final

  private <TResult> void executeCommand(com.mongodb.async.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>, com.mongodb.async.SingleResultCallback<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
        start local 4 // java.lang.Class resultClass
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 227
            ldc "command"
            aload 2 /* command */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 228
            ldc "readPreference"
            aload 3 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 229
            aload 1 /* clientSession */
            ifnull 4
            aload 1 /* clientSession */
            invokeinterface com.mongodb.async.client.ClientSession.hasActiveTransaction:()Z
            ifeq 4
            aload 3 /* readPreference */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 230
            new com.mongodb.MongoClientException
            dup
            ldc "Read preference in a transaction must be primary"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            new com.mongodb.operation.CommandReadOperation
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.getName:()Ljava/lang/String;
            aload 0 /* this */
            aload 2 /* command */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 4 /* resultClass */
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            invokespecial com.mongodb.operation.CommandReadOperation.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)V
         5: .line 233
            aload 3 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 5 /* callback */
         6: .line 232
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         7: .line 234
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // java.lang.Class resultClass
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    8     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    8     2         command  Lorg/bson/conversions/Bson;
            0    8     3  readPreference  Lcom/mongodb/ReadPreference;
            0    8     4     resultClass  Ljava/lang/Class<TTResult;>;
            0    8     5        callback  Lcom/mongodb/async/SingleResultCallback<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;Lcom/mongodb/async/SingleResultCallback<TTResult;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final
      callback        final

  public void drop(com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.SingleResultCallback callback
         0: .line 238
            aload 0 /* this */
            aconst_null
            aload 1 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeDrop:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 239
            return
        end local 1 // com.mongodb.async.SingleResultCallback callback
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      callback  final

  public void drop(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 243
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 244
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeDrop:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 245
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  private void executeDrop(com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 248
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            new com.mongodb.operation.DropDatabaseOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.DropDatabaseOperation.<init>:(Ljava/lang/String;Lcom/mongodb/WriteConcern;)V
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 2 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 249
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
               Name  Flags
      clientSession  final
      callback       final

  public void createCollection(java.lang.String, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 253
            aload 0 /* this */
            aconst_null
            aload 1 /* collectionName */
            new com.mongodb.client.model.CreateCollectionOptions
            dup
            invokespecial com.mongodb.client.model.CreateCollectionOptions.<init>:()V
            aload 2 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCreateCollection:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 254
            return
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  collectionName  Ljava/lang/String;
            0    2     2        callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                Name  Flags
      collectionName  final
      callback        final

  public void createCollection(java.lang.String, com.mongodb.client.model.CreateCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String collectionName
        start local 2 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 259
            aload 0 /* this */
            aconst_null
            aload 1 /* collectionName */
            aload 2 /* createCollectionOptions */
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCreateCollection:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 260
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // com.mongodb.client.model.CreateCollectionOptions createCollectionOptions
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    2     0                     this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1           collectionName  Ljava/lang/String;
            0    2     2  createCollectionOptions  Lcom/mongodb/client/model/CreateCollectionOptions;
            0    2     3                 callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                         Name  Flags
      collectionName           final
      createCollectionOptions  final
      callback                 final

  public void createCollection(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 265
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* collectionName */
            new com.mongodb.client.model.CreateCollectionOptions
            dup
            invokespecial com.mongodb.client.model.CreateCollectionOptions.<init>:()V
            aload 3 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createCollection:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 266
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2  collectionName  Ljava/lang/String;
            0    2     3        callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                Name  Flags
      clientSession   final
      collectionName  final
      callback        final

  public void createCollection(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.client.model.CreateCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
        start local 3 // com.mongodb.client.model.CreateCollectionOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 271
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 272
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* collectionName */
            aload 3 /* options */
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCreateCollection:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 273
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CreateCollectionOptions options
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1   clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2  collectionName  Ljava/lang/String;
            0    3     3         options  Lcom/mongodb/client/model/CreateCollectionOptions;
            0    3     4        callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                Name  Flags
      clientSession   final
      collectionName  final
      options         final
      callback        final

  private void executeCreateCollection(com.mongodb.async.client.ClientSession, java.lang.String, com.mongodb.client.model.CreateCollectionOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String collectionName
        start local 3 // com.mongodb.client.model.CreateCollectionOptions options
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 278
            new com.mongodb.operation.CreateCollectionOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 2 /* collectionName */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.CreateCollectionOperation.<init>:(Ljava/lang/String;Ljava/lang/String;Lcom/mongodb/WriteConcern;)V
         1: .line 279
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isCapped:()Z
            invokevirtual com.mongodb.operation.CreateCollectionOperation.capped:(Z)Lcom/mongodb/operation/CreateCollectionOperation;
         2: .line 280
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getSizeInBytes:()J
            invokevirtual com.mongodb.operation.CreateCollectionOperation.sizeInBytes:(J)Lcom/mongodb/operation/CreateCollectionOperation;
         3: .line 281
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isAutoIndex:()Z
            invokevirtual com.mongodb.operation.CreateCollectionOperation.autoIndex:(Z)Lcom/mongodb/operation/CreateCollectionOperation;
         4: .line 282
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getMaxDocuments:()J
            invokevirtual com.mongodb.operation.CreateCollectionOperation.maxDocuments:(J)Lcom/mongodb/operation/CreateCollectionOperation;
         5: .line 283
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.isUsePowerOf2Sizes:()Ljava/lang/Boolean;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.usePowerOf2Sizes:(Ljava/lang/Boolean;)Lcom/mongodb/operation/CreateCollectionOperation;
         6: .line 284
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getStorageEngineOptions:()Lorg/bson/conversions/Bson;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.storageEngineOptions:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
         7: .line 285
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.collation:(Lcom/mongodb/client/model/Collation;)Lcom/mongodb/operation/CreateCollectionOperation;
         8: .line 278
            astore 5 /* operation */
        start local 5 // com.mongodb.operation.CreateCollectionOperation operation
         9: .line 287
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getIndexOptionDefaults:()Lcom/mongodb/client/model/IndexOptionDefaults;
            astore 6 /* indexOptionDefaults */
        start local 6 // com.mongodb.client.model.IndexOptionDefaults indexOptionDefaults
        10: .line 288
            aload 6 /* indexOptionDefaults */
            invokevirtual com.mongodb.client.model.IndexOptionDefaults.getStorageEngine:()Lorg/bson/conversions/Bson;
            astore 7 /* storageEngine */
        start local 7 // org.bson.conversions.Bson storageEngine
        11: .line 289
            aload 7 /* storageEngine */
            ifnull 13
        12: .line 290
            aload 5 /* operation */
            new org.bson.BsonDocument
            dup
            ldc "storageEngine"
            aload 0 /* this */
            aload 7 /* storageEngine */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
            invokevirtual com.mongodb.operation.CreateCollectionOperation.indexOptionDefaults:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        13: .line 292
      StackMap locals: com.mongodb.operation.CreateCollectionOperation com.mongodb.client.model.IndexOptionDefaults org.bson.conversions.Bson
      StackMap stack:
            aload 3 /* options */
            invokevirtual com.mongodb.client.model.CreateCollectionOptions.getValidationOptions:()Lcom/mongodb/client/model/ValidationOptions;
            astore 8 /* validationOptions */
        start local 8 // com.mongodb.client.model.ValidationOptions validationOptions
        14: .line 293
            aload 8 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidator:()Lorg/bson/conversions/Bson;
            astore 9 /* validator */
        start local 9 // org.bson.conversions.Bson validator
        15: .line 294
            aload 9 /* validator */
            ifnull 17
        16: .line 295
            aload 5 /* operation */
            aload 0 /* this */
            aload 9 /* validator */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validator:(Lorg/bson/BsonDocument;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        17: .line 297
      StackMap locals: com.mongodb.client.model.ValidationOptions org.bson.conversions.Bson
      StackMap stack:
            aload 8 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationLevel:()Lcom/mongodb/client/model/ValidationLevel;
            ifnull 19
        18: .line 298
            aload 5 /* operation */
            aload 8 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationLevel:()Lcom/mongodb/client/model/ValidationLevel;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validationLevel:(Lcom/mongodb/client/model/ValidationLevel;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        19: .line 300
      StackMap locals:
      StackMap stack:
            aload 8 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationAction:()Lcom/mongodb/client/model/ValidationAction;
            ifnull 21
        20: .line 301
            aload 5 /* operation */
            aload 8 /* validationOptions */
            invokevirtual com.mongodb.client.model.ValidationOptions.getValidationAction:()Lcom/mongodb/client/model/ValidationAction;
            invokevirtual com.mongodb.operation.CreateCollectionOperation.validationAction:(Lcom/mongodb/client/model/ValidationAction;)Lcom/mongodb/operation/CreateCollectionOperation;
            pop
        21: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 5 /* operation */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 4 /* callback */
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
        22: .line 304
            return
        end local 9 // org.bson.conversions.Bson validator
        end local 8 // com.mongodb.client.model.ValidationOptions validationOptions
        end local 7 // org.bson.conversions.Bson storageEngine
        end local 6 // com.mongodb.client.model.IndexOptionDefaults indexOptionDefaults
        end local 5 // com.mongodb.operation.CreateCollectionOperation operation
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.client.model.CreateCollectionOptions options
        end local 2 // java.lang.String collectionName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   23     0                 this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0   23     1        clientSession  Lcom/mongodb/async/client/ClientSession;
            0   23     2       collectionName  Ljava/lang/String;
            0   23     3              options  Lcom/mongodb/client/model/CreateCollectionOptions;
            0   23     4             callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
            9   23     5            operation  Lcom/mongodb/operation/CreateCollectionOperation;
           10   23     6  indexOptionDefaults  Lcom/mongodb/client/model/IndexOptionDefaults;
           11   23     7        storageEngine  Lorg/bson/conversions/Bson;
           14   23     8    validationOptions  Lcom/mongodb/client/model/ValidationOptions;
           15   23     9            validator  Lorg/bson/conversions/Bson;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lcom/mongodb/client/model/CreateCollectionOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      collectionName  final
      options         final
      callback        final

  public void createView(java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String viewName
        start local 2 // java.lang.String viewOn
        start local 3 // java.util.List pipeline
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 309
            aload 0 /* this */
            aload 1 /* viewName */
            aload 2 /* viewOn */
            aload 3 /* pipeline */
            new com.mongodb.client.model.CreateViewOptions
            dup
            invokespecial com.mongodb.client.model.CreateViewOptions.<init>:()V
            aload 4 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createView:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 310
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.util.List pipeline
        end local 2 // java.lang.String viewOn
        end local 1 // java.lang.String viewName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  viewName  Ljava/lang/String;
            0    2     2    viewOn  Ljava/lang/String;
            0    2     3  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
          Name  Flags
      viewName  final
      viewOn    final
      pipeline  final
      callback  final

  public void createView(java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.String viewName
        start local 2 // java.lang.String viewOn
        start local 3 // java.util.List pipeline
        start local 4 // com.mongodb.client.model.CreateViewOptions createViewOptions
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 315
            aload 0 /* this */
            aconst_null
            aload 1 /* viewName */
            aload 2 /* viewOn */
            aload 3 /* pipeline */
            aload 4 /* createViewOptions */
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCreateView:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 316
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 3 // java.util.List pipeline
        end local 2 // java.lang.String viewOn
        end local 1 // java.lang.String viewName
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1           viewName  Ljava/lang/String;
            0    2     2             viewOn  Ljava/lang/String;
            0    2     3           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     4  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
            0    2     5           callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                   Name  Flags
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final
      callback           final

  public void createView(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 321
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 4 /* pipeline */
            new com.mongodb.client.model.CreateViewOptions
            dup
            invokespecial com.mongodb.client.model.CreateViewOptions.<init>:()V
            aload 5 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createView:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 322
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       viewName  Ljava/lang/String;
            0    2     3         viewOn  Ljava/lang/String;
            0    2     4       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     5       callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
               Name  Flags
      clientSession  final
      viewName       final
      viewOn         final
      pipeline       final
      callback       final

  public void createView(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
        start local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 328
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 329
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 4 /* pipeline */
            aload 5 /* createViewOptions */
            aload 6 /* callback */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.executeCreateView:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 330
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1      clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2           viewName  Ljava/lang/String;
            0    3     3             viewOn  Ljava/lang/String;
            0    3     4           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     5  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
            0    3     6           callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    MethodParameters:
                   Name  Flags
      clientSession      final
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final
      callback           final

  public com.mongodb.async.client.ChangeStreamIterable<org.bson.Document> watch();
    descriptor: ()Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
         0: .line 334
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/async/client/MongoDatabaseImpl;
    Signature: ()Lcom/mongodb/async/client/ChangeStreamIterable<Lorg/bson/Document;>;

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(java.lang.Class<TResult>);
    descriptor: (Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.lang.Class resultClass
         0: .line 339
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 1 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // java.lang.Class resultClass
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      resultClass  final

  public com.mongodb.async.client.ChangeStreamIterable<org.bson.Document> watch(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
         0: .line 344
            aload 0 /* this */
            aload 1 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 349
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createChangeStreamIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.async.client.ChangeStreamIterable<org.bson.Document> watch(com.mongodb.async.client.ClientSession);
    descriptor: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
         0: .line 354
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
    Signature: (Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/async/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(com.mongodb.async.client.ClientSession, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.Class resultClass
         0: .line 359
            aload 0 /* this */
            aload 1 /* clientSession */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      resultClass    final

  public com.mongodb.async.client.ChangeStreamIterable<org.bson.Document> watch(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 364
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.watch:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/ChangeStreamIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> watch(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 370
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 371
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createChangeStreamIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    2     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    2     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  public com.mongodb.async.client.AggregateIterable<org.bson.Document> aggregate(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
         0: .line 376
            aload 0 /* this */
            aload 1 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.aggregate:(Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/AggregateIterable<Lorg/bson/Document;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  public <TResult> com.mongodb.async.client.AggregateIterable<TResult> aggregate(java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 381
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createAggregateIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1     pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     2  resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

  public com.mongodb.async.client.AggregateIterable<org.bson.Document> aggregate(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
         0: .line 386
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* pipeline */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.aggregate:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Lcom/mongodb/async/client/AggregateIterable<Lorg/bson/Document;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final

  public <TResult> com.mongodb.async.client.AggregateIterable<TResult> aggregate(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 392
            aload 0 /* this */
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.async.client.ClientSession
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createAggregateIterable:(Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    1     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    1     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.async.client.AggregateIterable<TResult> createAggregateIterable(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/AggregateIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 398
            new com.mongodb.async.client.AggregateIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            ldc Lorg/bson/Document;
            aload 3 /* resultClass */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         1: .line 399
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* pipeline */
            getstatic com.mongodb.client.model.AggregationLevel.DATABASE:Lcom/mongodb/client/model/AggregationLevel;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
         2: .line 398
            invokespecial com.mongodb.async.client.AggregateIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/WriteConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/util/List;Lcom/mongodb/client/model/AggregationLevel;Z)V
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/AggregateIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private <TResult> com.mongodb.async.client.ChangeStreamIterable<TResult> createChangeStreamIterable(com.mongodb.async.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/async/client/ChangeStreamIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 405
            new com.mongodb.async.client.ChangeStreamIterableImpl
            dup
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 406
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            aload 2 /* pipeline */
            aload 3 /* resultClass */
            getstatic com.mongodb.client.model.changestream.ChangeStreamLevel.DATABASE:Lcom/mongodb/client/model/changestream/ChangeStreamLevel;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.retryReads:Z
         2: .line 405
            invokespecial com.mongodb.async.client.ChangeStreamIterableImpl.<init>:(Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/OperationExecutor;Ljava/util/List;Ljava/lang/Class;Lcom/mongodb/client/model/changestream/ChangeStreamLevel;Z)V
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/async/client/ClientSession;
            0    3     2       pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    3     3    resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/async/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/async/client/ChangeStreamIterable<TTResult;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
    MethodParameters:
               Name  Flags
      clientSession  final
      pipeline       final
      resultClass    final

  private void executeCreateView(com.mongodb.async.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions, com.mongodb.async.SingleResultCallback<java.lang.Void>);
    descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // com.mongodb.async.client.ClientSession clientSession
        start local 2 // java.lang.String viewName
        start local 3 // java.lang.String viewOn
        start local 4 // java.util.List pipeline
        start local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 412
            ldc "createViewOptions"
            aload 5 /* createViewOptions */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 413
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.executor:Lcom/mongodb/async/client/OperationExecutor;
            new com.mongodb.operation.CreateViewOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 0 /* this */
            aload 4 /* pipeline */
            invokevirtual com.mongodb.async.client.MongoDatabaseImpl.createBsonDocumentList:(Ljava/util/List;)Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.CreateViewOperation.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
         2: .line 414
            aload 5 /* createViewOptions */
            invokevirtual com.mongodb.client.model.CreateViewOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.operation.CreateViewOperation.collation:(Lcom/mongodb/client/model/Collation;)Lcom/mongodb/operation/CreateViewOperation;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            aload 6 /* callback */
         3: .line 413
            invokeinterface com.mongodb.async.client.OperationExecutor.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 415
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // com.mongodb.client.model.CreateViewOptions createViewOptions
        end local 4 // java.util.List pipeline
        end local 3 // java.lang.String viewOn
        end local 2 // java.lang.String viewName
        end local 1 // com.mongodb.async.client.ClientSession clientSession
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    5     1      clientSession  Lcom/mongodb/async/client/ClientSession;
            0    5     2           viewName  Ljava/lang/String;
            0    5     3             viewOn  Ljava/lang/String;
            0    5     4           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    5     5  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
            0    5     6           callback  Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
    Signature: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
      5:
    MethodParameters:
                   Name  Flags
      clientSession      final
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  final
      callback           final

  private java.util.List<org.bson.BsonDocument> createBsonDocumentList(java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
         0: .line 418
            ldc "pipeline"
            aload 1 /* pipeline */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 419
            new java.util.ArrayList
            dup
            aload 1 /* pipeline */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* bsonDocumentPipeline */
        start local 2 // java.util.List bsonDocumentPipeline
         2: .line 420
            aload 1 /* pipeline */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.mongodb.async.client.MongoDatabaseImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.bson.conversions.Bson
            astore 3 /* obj */
        start local 3 // org.bson.conversions.Bson obj
         4: .line 421
            aload 3 /* obj */
            ifnonnull 6
         5: .line 422
            new java.lang.IllegalArgumentException
            dup
            ldc "pipeline can not contain a null value"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 424
      StackMap locals: com.mongodb.async.client.MongoDatabaseImpl java.util.List java.util.List org.bson.conversions.Bson java.util.Iterator
      StackMap stack:
            aload 2 /* bsonDocumentPipeline */
            aload 3 /* obj */
            ldc Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokeinterface org.bson.conversions.Bson.toBsonDocument:(Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.bson.conversions.Bson obj
         7: .line 420
      StackMap locals: com.mongodb.async.client.MongoDatabaseImpl java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 426
            aload 2 /* bsonDocumentPipeline */
            areturn
        end local 2 // java.util.List bsonDocumentPipeline
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    9     1              pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            2    9     2  bsonDocumentPipeline  Ljava/util/List<Lorg/bson/BsonDocument;>;
            4    7     3                   obj  Lorg/bson/conversions/Bson;
    Signature: (Ljava/util/List<+Lorg/bson/conversions/Bson;>;)Ljava/util/List<Lorg/bson/BsonDocument;>;
    MethodParameters:
          Name  Flags
      pipeline  final

  private org.bson.BsonDocument toBsonDocument(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.async.client.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson document
         0: .line 431
            aload 1 /* document */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* document */
            ldc Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.async.client.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            invokeinterface org.bson.conversions.Bson.toBsonDocument:(Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
      StackMap locals:
      StackMap stack: org.bson.BsonDocument
         2: areturn
        end local 1 // org.bson.conversions.Bson document
        end local 0 // com.mongodb.async.client.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/async/client/MongoDatabaseImpl;
            0    3     1  document  Lorg/bson/conversions/Bson;
    RuntimeVisibleAnnotations: 
      com.mongodb.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
          Name  Flags
      document  final
}
SourceFile: "MongoDatabaseImpl.java"
NestMembers:
  com.mongodb.async.client.MongoDatabaseImpl$1
InnerClasses:
  com.mongodb.async.client.MongoDatabaseImpl$1