public class com.mongodb.client.internal.MongoDatabaseImpl implements com.mongodb.client.MongoDatabase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.client.internal.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.client.internal.OperationExecutor executor;
    descriptor: Lcom/mongodb/client/internal/OperationExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.String, org.bson.codecs.configuration.CodecRegistry, com.mongodb.ReadPreference, com.mongodb.WriteConcern, boolean, boolean, com.mongodb.ReadConcern, com.mongodb.client.internal.OperationExecutor);
    descriptor: (Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/WriteConcern;ZZLcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=9
        start local 0 // com.mongodb.client.internal.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.client.internal.OperationExecutor executor
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 1 /* name */
            invokestatic com.mongodb.MongoNamespace.checkDatabaseNameValidity:(Ljava/lang/String;)V
         2: .line 72
            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.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
         3: .line 73
            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.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
         4: .line 74
            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.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         5: .line 75
            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.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
         6: .line 76
            aload 0 /* this */
            iload 5 /* retryWrites */
            putfield com.mongodb.client.internal.MongoDatabaseImpl.retryWrites:Z
         7: .line 77
            aload 0 /* this */
            iload 6 /* retryReads */
            putfield com.mongodb.client.internal.MongoDatabaseImpl.retryReads:Z
         8: .line 78
            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.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
         9: .line 79
            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.client.internal.OperationExecutor
            putfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
        10: .line 80
            return
        end local 8 // com.mongodb.client.internal.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.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/mongodb/client/internal/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/client/internal/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.client.internal.MongoDatabaseImpl this
         0: .line 84
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl this
         0: .line 89
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl this
         0: .line 94
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl this
         0: .line 99
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl this
         0: .line 104
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            areturn
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;

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

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

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

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

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

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

  public org.bson.Document runCommand(org.bson.conversions.Bson);
    descriptor: (Lorg/bson/conversions/Bson;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
         0: .line 140
            aload 0 /* this */
            aload 1 /* command */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  command  Lorg/bson/conversions/Bson;
    MethodParameters:
         Name  Flags
      command  final

  public org.bson.Document runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
         0: .line 145
            aload 0 /* this */
            aload 1 /* command */
            aload 2 /* readPreference */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // org.bson.conversions.Bson command
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1         command  Lorg/bson/conversions/Bson;
            0    1     2  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final

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

  public <TResult> TResult runCommand(org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // org.bson.conversions.Bson command
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // java.lang.Class resultClass
         0: .line 155
            aload 0 /* this */
            aconst_null
            aload 1 /* command */
            aload 2 /* readPreference */
            aload 3 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        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.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1         command  Lorg/bson/conversions/Bson;
            0    1     2  readPreference  Lcom/mongodb/ReadPreference;
            0    1     3     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    MethodParameters:
                Name  Flags
      command         final
      readPreference  final
      resultClass     final

  public org.bson.Document runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
         0: .line 160
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1  clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2        command  Lorg/bson/conversions/Bson;
    MethodParameters:
               Name  Flags
      clientSession  final
      command        final

  public org.bson.Document runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;)Lorg/bson/Document;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // org.bson.conversions.Bson command
        start local 3 // com.mongodb.ReadPreference readPreference
         0: .line 165
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            ldc Lorg/bson/Document;
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.runCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.Document
            areturn
        end local 3 // com.mongodb.ReadPreference readPreference
        end local 2 // org.bson.conversions.Bson command
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    1     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    1     2         command  Lorg/bson/conversions/Bson;
            0    1     3  readPreference  Lcom/mongodb/ReadPreference;
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final

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

  public <TResult> TResult runCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.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
         0: .line 176
            ldc "clientSession"
            aload 1 /* clientSession */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 177
            aload 0 /* this */
            aload 1 /* clientSession */
            aload 2 /* command */
            aload 3 /* readPreference */
            aload 4 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeCommand:(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        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.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    2     2         command  Lorg/bson/conversions/Bson;
            0    2     3  readPreference  Lcom/mongodb/ReadPreference;
            0    2     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final

  private <TResult> TResult executeCommand(com.mongodb.client.ClientSession, org.bson.conversions.Bson, com.mongodb.ReadPreference, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.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
         0: .line 182
            ldc "readPreference"
            aload 3 /* readPreference */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 183
            aload 1 /* clientSession */
            ifnull 3
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.ClientSession.hasActiveTransaction:()Z
            ifeq 3
            aload 3 /* readPreference */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 184
            new com.mongodb.MongoClientException
            dup
            ldc "Read preference in a transaction must be primary"
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.CommandReadOperation
            dup
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.getName:()Ljava/lang/String;
            aload 0 /* this */
            aload 2 /* command */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.toBsonDocument:(Lorg/bson/conversions/Bson;)Lorg/bson/BsonDocument;
            aload 0 /* this */
            getfield com.mongodb.client.internal.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
         4: .line 187
            aload 3 /* readPreference */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         5: .line 186
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/ReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            areturn
        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.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    6     1   clientSession  Lcom/mongodb/client/ClientSession;
            0    6     2         command  Lorg/bson/conversions/Bson;
            0    6     3  readPreference  Lcom/mongodb/ReadPreference;
            0    6     4     resultClass  Ljava/lang/Class<TTResult;>;
    Signature: <TResult:Ljava/lang/Object;>(Lcom/mongodb/client/ClientSession;Lorg/bson/conversions/Bson;Lcom/mongodb/ReadPreference;Ljava/lang/Class<TTResult;>;)TTResult;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
    MethodParameters:
                Name  Flags
      clientSession   final
      command         final
      readPreference  final
      resultClass     final

  public void drop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
         0: .line 192
            aload 0 /* this */
            aconst_null
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.executeDrop:(Lcom/mongodb/client/ClientSession;)V
         1: .line 193
            return
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/client/internal/MongoDatabaseImpl;

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

  private void executeDrop(com.mongodb.client.ClientSession);
    descriptor: (Lcom/mongodb/client/ClientSession;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
         0: .line 202
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.DropDatabaseOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.getWriteConcern:()Lcom/mongodb/WriteConcern;
            invokespecial com.mongodb.operation.DropDatabaseOperation.<init>:(Ljava/lang/String;Lcom/mongodb/WriteConcern;)V
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         1: .line 203
            return
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    2     1  clientSession  Lcom/mongodb/client/ClientSession;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
               Name  Flags
      clientSession  final

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

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

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

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

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

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

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

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

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

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

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

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

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

  public void createView(java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.lang.String viewName
        start local 2 // java.lang.String viewOn
        start local 3 // java.util.List pipeline
         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
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createView:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
         1: .line 310
            return
        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.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/client/internal/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;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;)V
    MethodParameters:
          Name  Flags
      viewName  final
      viewOn    final
      pipeline  final

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

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

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

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

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

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

  public <TResult> com.mongodb.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/client/ChangeStreamIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 348
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createChangeStreamIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/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/client/ChangeStreamIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

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

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

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

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

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

  public <TResult> com.mongodb.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/client/AggregateIterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // java.util.List pipeline
        start local 2 // java.lang.Class resultClass
         0: .line 380
            aload 0 /* this */
            aconst_null
            aload 1 /* pipeline */
            aload 2 /* resultClass */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createAggregateIterable:(Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/AggregateIterable;
            areturn
        end local 2 // java.lang.Class resultClass
        end local 1 // java.util.List pipeline
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/mongodb/client/internal/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/client/AggregateIterable<TTResult;>;
    MethodParameters:
             Name  Flags
      pipeline     final
      resultClass  final

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

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

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

  private <TResult> com.mongodb.client.ChangeStreamIterable<TResult> createChangeStreamIterable(com.mongodb.client.ClientSession, java.util.List<? extends org.bson.conversions.Bson>, java.lang.Class<TResult>);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/util/List;Ljava/lang/Class;)Lcom/mongodb/client/ChangeStreamIterable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.client.ClientSession clientSession
        start local 2 // java.util.List pipeline
        start local 3 // java.lang.Class resultClass
         0: .line 405
            aload 1 /* clientSession */
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.codecRegistry:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readPreference:Lcom/mongodb/ReadPreference;
         1: .line 406
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl.retryReads:Z
         2: .line 405
            invokestatic com.mongodb.client.internal.MongoIterables.changeStreamOf:(Lcom/mongodb/client/ClientSession;Ljava/lang/String;Lorg/bson/codecs/configuration/CodecRegistry;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/internal/OperationExecutor;Ljava/util/List;Ljava/lang/Class;Lcom/mongodb/client/model/changestream/ChangeStreamLevel;Z)Lcom/mongodb/client/ChangeStreamIterable;
            areturn
        end local 3 // java.lang.Class resultClass
        end local 2 // java.util.List pipeline
        end local 1 // com.mongodb.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    3     1  clientSession  Lcom/mongodb/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/client/ClientSession;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Ljava/lang/Class<TTResult;>;)Lcom/mongodb/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.client.ClientSession, java.lang.String, java.lang.String, java.util.List<? extends org.bson.conversions.Bson>, com.mongodb.client.model.CreateViewOptions);
    descriptor: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/mongodb/client/model/CreateViewOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
        start local 1 // com.mongodb.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
         0: .line 411
            ldc "createViewOptions"
            aload 5 /* createViewOptions */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 412
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.executor:Lcom/mongodb/client/internal/OperationExecutor;
            new com.mongodb.operation.CreateViewOperation
            dup
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.name:Ljava/lang/String;
            aload 2 /* viewName */
            aload 3 /* viewOn */
            aload 0 /* this */
            aload 4 /* pipeline */
            invokevirtual com.mongodb.client.internal.MongoDatabaseImpl.createBsonDocumentList:(Ljava/util/List;)Ljava/util/List;
            aload 0 /* this */
            getfield com.mongodb.client.internal.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 413
            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;
         3: .line 414
            aload 0 /* this */
            getfield com.mongodb.client.internal.MongoDatabaseImpl.readConcern:Lcom/mongodb/ReadConcern;
            aload 1 /* clientSession */
         4: .line 412
            invokeinterface com.mongodb.client.internal.OperationExecutor.execute:(Lcom/mongodb/operation/WriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/client/ClientSession;)Ljava/lang/Object;
            pop
         5: .line 415
            return
        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.client.ClientSession clientSession
        end local 0 // com.mongodb.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/mongodb/client/internal/MongoDatabaseImpl;
            0    6     1      clientSession  Lcom/mongodb/client/ClientSession;
            0    6     2           viewName  Ljava/lang/String;
            0    6     3             viewOn  Ljava/lang/String;
            0    6     4           pipeline  Ljava/util/List<+Lorg/bson/conversions/Bson;>;
            0    6     5  createViewOptions  Lcom/mongodb/client/model/CreateViewOptions;
    Signature: (Lcom/mongodb/client/ClientSession;Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Lorg/bson/conversions/Bson;>;Lcom/mongodb/client/model/CreateViewOptions;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
      2:
      3:
      4:
    MethodParameters:
                   Name  Flags
      clientSession      final
      viewName           final
      viewOn             final
      pipeline           final
      createViewOptions  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.client.internal.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.client.internal.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.client.internal.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.client.internal.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.client.internal.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.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Lcom/mongodb/client/internal/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.client.internal.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.client.internal.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.client.internal.MongoDatabaseImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/mongodb/client/internal/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.client.internal.MongoDatabaseImpl$1
InnerClasses:
  com.mongodb.client.internal.MongoDatabaseImpl$1