abstract class com.mongodb.internal.connection.RequestMessage
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.mongodb.internal.connection.RequestMessage
  super_class: java.lang.Object
{
  static final java.util.concurrent.atomic.AtomicInteger REQUEST_ID;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MESSAGE_PROLOGUE_LENGTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int DOCUMENT_HEADROOM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private static final org.bson.codecs.configuration.CodecRegistry REGISTRY;
    descriptor: Lorg/bson/codecs/configuration/CodecRegistry;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String collectionName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.MessageSettings settings;
    descriptor: Lcom/mongodb/internal/connection/MessageSettings;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int id;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.OpCode opCode;
    descriptor: Lcom/mongodb/internal/connection/OpCode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.mongodb.internal.connection.RequestMessage$EncodingMetadata encodingMetadata;
    descriptor: Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 45
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic com.mongodb.internal.connection.RequestMessage.REQUEST_ID:Ljava/util/concurrent/atomic/AtomicInteger;
         1: .line 53
            iconst_1
            anewarray org.bson.codecs.configuration.CodecProvider
            dup
            iconst_0
            new org.bson.codecs.BsonValueCodecProvider
            dup
            invokespecial org.bson.codecs.BsonValueCodecProvider.<init>:()V
            aastore
            invokestatic org.bson.codecs.configuration.CodecRegistries.fromProviders:([Lorg/bson/codecs/configuration/CodecProvider;)Lorg/bson/codecs/configuration/CodecRegistry;
            putstatic com.mongodb.internal.connection.RequestMessage.REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static int getCurrentGlobalId();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 78
            getstatic com.mongodb.internal.connection.RequestMessage.REQUEST_ID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.mongodb.internal.connection.OpCode, com.mongodb.internal.connection.MessageSettings);
    descriptor: (Lcom/mongodb/internal/connection/OpCode;Lcom/mongodb/internal/connection/MessageSettings;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // com.mongodb.internal.connection.OpCode opCode
        start local 2 // com.mongodb.internal.connection.MessageSettings settings
         0: .line 82
            aload 0 /* this */
            aconst_null
            aload 1 /* opCode */
            aload 2 /* settings */
            invokespecial com.mongodb.internal.connection.RequestMessage.<init>:(Ljava/lang/String;Lcom/mongodb/internal/connection/OpCode;Lcom/mongodb/internal/connection/MessageSettings;)V
         1: .line 83
            return
        end local 2 // com.mongodb.internal.connection.MessageSettings settings
        end local 1 // com.mongodb.internal.connection.OpCode opCode
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/mongodb/internal/connection/RequestMessage;
            0    2     1    opCode  Lcom/mongodb/internal/connection/OpCode;
            0    2     2  settings  Lcom/mongodb/internal/connection/MessageSettings;
    MethodParameters:
          Name  Flags
      opCode    final
      settings  final

  void <init>(com.mongodb.internal.connection.OpCode, int, com.mongodb.internal.connection.MessageSettings);
    descriptor: (Lcom/mongodb/internal/connection/OpCode;ILcom/mongodb/internal/connection/MessageSettings;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // com.mongodb.internal.connection.OpCode opCode
        start local 2 // int requestId
        start local 3 // com.mongodb.internal.connection.MessageSettings settings
         0: .line 86
            aload 0 /* this */
            aconst_null
            aload 1 /* opCode */
            iload 2 /* requestId */
            aload 3 /* settings */
            invokespecial com.mongodb.internal.connection.RequestMessage.<init>:(Ljava/lang/String;Lcom/mongodb/internal/connection/OpCode;ILcom/mongodb/internal/connection/MessageSettings;)V
         1: .line 87
            return
        end local 3 // com.mongodb.internal.connection.MessageSettings settings
        end local 2 // int requestId
        end local 1 // com.mongodb.internal.connection.OpCode opCode
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/mongodb/internal/connection/RequestMessage;
            0    2     1     opCode  Lcom/mongodb/internal/connection/OpCode;
            0    2     2  requestId  I
            0    2     3   settings  Lcom/mongodb/internal/connection/MessageSettings;
    MethodParameters:
           Name  Flags
      opCode     final
      requestId  final
      settings   final

  void <init>(java.lang.String, com.mongodb.internal.connection.OpCode, com.mongodb.internal.connection.MessageSettings);
    descriptor: (Ljava/lang/String;Lcom/mongodb/internal/connection/OpCode;Lcom/mongodb/internal/connection/MessageSettings;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // java.lang.String collectionName
        start local 2 // com.mongodb.internal.connection.OpCode opCode
        start local 3 // com.mongodb.internal.connection.MessageSettings settings
         0: .line 91
            aload 0 /* this */
            aload 1 /* collectionName */
            aload 2 /* opCode */
            getstatic com.mongodb.internal.connection.RequestMessage.REQUEST_ID:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
            aload 3 /* settings */
            invokespecial com.mongodb.internal.connection.RequestMessage.<init>:(Ljava/lang/String;Lcom/mongodb/internal/connection/OpCode;ILcom/mongodb/internal/connection/MessageSettings;)V
         1: .line 92
            return
        end local 3 // com.mongodb.internal.connection.MessageSettings settings
        end local 2 // com.mongodb.internal.connection.OpCode opCode
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/internal/connection/RequestMessage;
            0    2     1  collectionName  Ljava/lang/String;
            0    2     2          opCode  Lcom/mongodb/internal/connection/OpCode;
            0    2     3        settings  Lcom/mongodb/internal/connection/MessageSettings;
    MethodParameters:
                Name  Flags
      collectionName  final
      opCode          final
      settings        final

  private void <init>(java.lang.String, com.mongodb.internal.connection.OpCode, int, com.mongodb.internal.connection.MessageSettings);
    descriptor: (Ljava/lang/String;Lcom/mongodb/internal/connection/OpCode;ILcom/mongodb/internal/connection/MessageSettings;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // java.lang.String collectionName
        start local 2 // com.mongodb.internal.connection.OpCode opCode
        start local 3 // int requestId
        start local 4 // com.mongodb.internal.connection.MessageSettings settings
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            aload 0 /* this */
            aload 1 /* collectionName */
            putfield com.mongodb.internal.connection.RequestMessage.collectionName:Ljava/lang/String;
         2: .line 96
            aload 0 /* this */
            aload 4 /* settings */
            putfield com.mongodb.internal.connection.RequestMessage.settings:Lcom/mongodb/internal/connection/MessageSettings;
         3: .line 97
            aload 0 /* this */
            iload 3 /* requestId */
            putfield com.mongodb.internal.connection.RequestMessage.id:I
         4: .line 98
            aload 0 /* this */
            aload 2 /* opCode */
            putfield com.mongodb.internal.connection.RequestMessage.opCode:Lcom/mongodb/internal/connection/OpCode;
         5: .line 99
            return
        end local 4 // com.mongodb.internal.connection.MessageSettings settings
        end local 3 // int requestId
        end local 2 // com.mongodb.internal.connection.OpCode opCode
        end local 1 // java.lang.String collectionName
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/mongodb/internal/connection/RequestMessage;
            0    6     1  collectionName  Ljava/lang/String;
            0    6     2          opCode  Lcom/mongodb/internal/connection/OpCode;
            0    6     3       requestId  I
            0    6     4        settings  Lcom/mongodb/internal/connection/MessageSettings;
    MethodParameters:
                Name  Flags
      collectionName  final
      opCode          final
      requestId       final
      settings        final

  public int getId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.RequestMessage this
         0: .line 107
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.id:I
            ireturn
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/RequestMessage;

  public com.mongodb.internal.connection.OpCode getOpCode();
    descriptor: ()Lcom/mongodb/internal/connection/OpCode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.RequestMessage this
         0: .line 116
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.opCode:Lcom/mongodb/internal/connection/OpCode;
            areturn
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/RequestMessage;

  public com.mongodb.internal.connection.MessageSettings getSettings();
    descriptor: ()Lcom/mongodb/internal/connection/MessageSettings;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.RequestMessage this
         0: .line 125
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.settings:Lcom/mongodb/internal/connection/MessageSettings;
            areturn
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/RequestMessage;

  public void encode(org.bson.io.BsonOutput, com.mongodb.session.SessionContext);
    descriptor: (Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.io.BsonOutput bsonOutput
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 135
            ldc "sessionContext"
            aload 2 /* sessionContext */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 136
            aload 1 /* bsonOutput */
            invokeinterface org.bson.io.BsonOutput.getPosition:()I
            istore 3 /* messageStartPosition */
        start local 3 // int messageStartPosition
         2: .line 137
            aload 0 /* this */
            aload 1 /* bsonOutput */
            invokevirtual com.mongodb.internal.connection.RequestMessage.writeMessagePrologue:(Lorg/bson/io/BsonOutput;)V
         3: .line 138
            aload 0 /* this */
            aload 1 /* bsonOutput */
            aload 2 /* sessionContext */
            invokevirtual com.mongodb.internal.connection.RequestMessage.encodeMessageBodyWithMetadata:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
            astore 4 /* encodingMetadata */
        start local 4 // com.mongodb.internal.connection.RequestMessage$EncodingMetadata encodingMetadata
         4: .line 139
            aload 0 /* this */
            iload 3 /* messageStartPosition */
            aload 1 /* bsonOutput */
            invokevirtual com.mongodb.internal.connection.RequestMessage.backpatchMessageLength:(ILorg/bson/io/BsonOutput;)V
         5: .line 140
            aload 0 /* this */
            aload 4 /* encodingMetadata */
            putfield com.mongodb.internal.connection.RequestMessage.encodingMetadata:Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
         6: .line 141
            return
        end local 4 // com.mongodb.internal.connection.RequestMessage$EncodingMetadata encodingMetadata
        end local 3 // int messageStartPosition
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // org.bson.io.BsonOutput bsonOutput
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0                  this  Lcom/mongodb/internal/connection/RequestMessage;
            0    7     1            bsonOutput  Lorg/bson/io/BsonOutput;
            0    7     2        sessionContext  Lcom/mongodb/session/SessionContext;
            2    7     3  messageStartPosition  I
            4    7     4      encodingMetadata  Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
    MethodParameters:
                Name  Flags
      bsonOutput      final
      sessionContext  final

  public com.mongodb.internal.connection.RequestMessage$EncodingMetadata getEncodingMetadata();
    descriptor: ()Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.RequestMessage this
         0: .line 149
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.encodingMetadata:Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
            areturn
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/RequestMessage;

  protected void writeMessagePrologue(org.bson.io.BsonOutput);
    descriptor: (Lorg/bson/io/BsonOutput;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.io.BsonOutput bsonOutput
         0: .line 158
            aload 1 /* bsonOutput */
            iconst_0
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         1: .line 159
            aload 1 /* bsonOutput */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.id:I
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         2: .line 160
            aload 1 /* bsonOutput */
            iconst_0
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         3: .line 161
            aload 1 /* bsonOutput */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.opCode:Lcom/mongodb/internal/connection/OpCode;
            invokevirtual com.mongodb.internal.connection.OpCode.getValue:()I
            invokeinterface org.bson.io.BsonOutput.writeInt32:(I)V
         4: .line 162
            return
        end local 1 // org.bson.io.BsonOutput bsonOutput
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/mongodb/internal/connection/RequestMessage;
            0    5     1  bsonOutput  Lorg/bson/io/BsonOutput;
    MethodParameters:
            Name  Flags
      bsonOutput  final

  protected abstract com.mongodb.internal.connection.RequestMessage$EncodingMetadata encodeMessageBodyWithMetadata(org.bson.io.BsonOutput, com.mongodb.session.SessionContext);
    descriptor: (Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)Lcom/mongodb/internal/connection/RequestMessage$EncodingMetadata;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                Name  Flags
      bsonOutput      
      sessionContext  

  protected void addDocument(org.bson.BsonDocument, org.bson.io.BsonOutput, org.bson.FieldNameValidator);
    descriptor: (Lorg/bson/BsonDocument;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.BsonDocument document
        start local 2 // org.bson.io.BsonOutput bsonOutput
        start local 3 // org.bson.FieldNameValidator validator
         0: .line 182
            aload 0 /* this */
            aload 1 /* document */
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.internal.connection.RequestMessage.getCodec:(Lorg/bson/BsonDocument;)Lorg/bson/codecs/Codec;
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* bsonOutput */
            aload 3 /* validator */
         1: .line 183
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.settings:Lcom/mongodb/internal/connection/MessageSettings;
            invokevirtual com.mongodb.internal.connection.MessageSettings.getMaxDocumentSize:()I
            sipush 16384
            iadd
            aconst_null
         2: .line 182
            invokevirtual com.mongodb.internal.connection.RequestMessage.addDocument:(Ljava/lang/Object;Lorg/bson/codecs/Encoder;Lorg/bson/codecs/EncoderContext;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;ILjava/util/List;)V
         3: .line 184
            return
        end local 3 // org.bson.FieldNameValidator validator
        end local 2 // org.bson.io.BsonOutput bsonOutput
        end local 1 // org.bson.BsonDocument document
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/mongodb/internal/connection/RequestMessage;
            0    4     1    document  Lorg/bson/BsonDocument;
            0    4     2  bsonOutput  Lorg/bson/io/BsonOutput;
            0    4     3   validator  Lorg/bson/FieldNameValidator;
    MethodParameters:
            Name  Flags
      document    final
      bsonOutput  final
      validator   final

  protected void addDocument(org.bson.BsonDocument, org.bson.io.BsonOutput, org.bson.FieldNameValidator, java.util.List<org.bson.BsonElement>);
    descriptor: (Lorg/bson/BsonDocument;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.BsonDocument document
        start local 2 // org.bson.io.BsonOutput bsonOutput
        start local 3 // org.bson.FieldNameValidator validator
        start local 4 // java.util.List extraElements
         0: .line 188
            aload 0 /* this */
            aload 1 /* document */
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.internal.connection.RequestMessage.getCodec:(Lorg/bson/BsonDocument;)Lorg/bson/codecs/Codec;
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* bsonOutput */
            aload 3 /* validator */
         1: .line 189
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.settings:Lcom/mongodb/internal/connection/MessageSettings;
            invokevirtual com.mongodb.internal.connection.MessageSettings.getMaxDocumentSize:()I
            sipush 16384
            iadd
            aload 4 /* extraElements */
         2: .line 188
            invokevirtual com.mongodb.internal.connection.RequestMessage.addDocument:(Ljava/lang/Object;Lorg/bson/codecs/Encoder;Lorg/bson/codecs/EncoderContext;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;ILjava/util/List;)V
         3: .line 190
            return
        end local 4 // java.util.List extraElements
        end local 3 // org.bson.FieldNameValidator validator
        end local 2 // org.bson.io.BsonOutput bsonOutput
        end local 1 // org.bson.BsonDocument document
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/mongodb/internal/connection/RequestMessage;
            0    4     1       document  Lorg/bson/BsonDocument;
            0    4     2     bsonOutput  Lorg/bson/io/BsonOutput;
            0    4     3      validator  Lorg/bson/FieldNameValidator;
            0    4     4  extraElements  Ljava/util/List<Lorg/bson/BsonElement;>;
    Signature: (Lorg/bson/BsonDocument;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;Ljava/util/List<Lorg/bson/BsonElement;>;)V
    MethodParameters:
               Name  Flags
      document       final
      bsonOutput     final
      validator      final
      extraElements  final

  protected void addCollectibleDocument(org.bson.BsonDocument, org.bson.io.BsonOutput, org.bson.FieldNameValidator);
    descriptor: (Lorg/bson/BsonDocument;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.BsonDocument document
        start local 2 // org.bson.io.BsonOutput bsonOutput
        start local 3 // org.bson.FieldNameValidator validator
         0: .line 200
            aload 0 /* this */
            aload 1 /* document */
            aload 0 /* this */
            aload 1 /* document */
            invokevirtual com.mongodb.internal.connection.RequestMessage.getCodec:(Lorg/bson/BsonDocument;)Lorg/bson/codecs/Codec;
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            iconst_1
            invokevirtual org.bson.codecs.EncoderContext$Builder.isEncodingCollectibleDocument:(Z)Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            aload 2 /* bsonOutput */
         1: .line 201
            aload 3 /* validator */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.settings:Lcom/mongodb/internal/connection/MessageSettings;
            invokevirtual com.mongodb.internal.connection.MessageSettings.getMaxDocumentSize:()I
            aconst_null
         2: .line 200
            invokevirtual com.mongodb.internal.connection.RequestMessage.addDocument:(Ljava/lang/Object;Lorg/bson/codecs/Encoder;Lorg/bson/codecs/EncoderContext;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;ILjava/util/List;)V
         3: .line 202
            return
        end local 3 // org.bson.FieldNameValidator validator
        end local 2 // org.bson.io.BsonOutput bsonOutput
        end local 1 // org.bson.BsonDocument document
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/mongodb/internal/connection/RequestMessage;
            0    4     1    document  Lorg/bson/BsonDocument;
            0    4     2  bsonOutput  Lorg/bson/io/BsonOutput;
            0    4     3   validator  Lorg/bson/FieldNameValidator;
    MethodParameters:
            Name  Flags
      document    final
      bsonOutput  final
      validator   final

  protected void backpatchMessageLength(int, org.bson.io.BsonOutput);
    descriptor: (ILorg/bson/io/BsonOutput;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // int startPosition
        start local 2 // org.bson.io.BsonOutput bsonOutput
         0: .line 211
            aload 2 /* bsonOutput */
            invokeinterface org.bson.io.BsonOutput.getPosition:()I
            iload 1 /* startPosition */
            isub
            istore 3 /* messageLength */
        start local 3 // int messageLength
         1: .line 212
            aload 2 /* bsonOutput */
            aload 2 /* bsonOutput */
            invokeinterface org.bson.io.BsonOutput.getPosition:()I
            iload 3 /* messageLength */
            isub
            iload 3 /* messageLength */
            invokeinterface org.bson.io.BsonOutput.writeInt32:(II)V
         2: .line 213
            return
        end local 3 // int messageLength
        end local 2 // org.bson.io.BsonOutput bsonOutput
        end local 1 // int startPosition
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/internal/connection/RequestMessage;
            0    3     1  startPosition  I
            0    3     2     bsonOutput  Lorg/bson/io/BsonOutput;
            1    3     3  messageLength  I
    MethodParameters:
               Name  Flags
      startPosition  final
      bsonOutput     final

  protected java.lang.String getCollectionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.RequestMessage this
         0: .line 221
            aload 0 /* this */
            getfield com.mongodb.internal.connection.RequestMessage.collectionName:Ljava/lang/String;
            areturn
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/RequestMessage;

  org.bson.codecs.Codec<org.bson.BsonDocument> getCodec(org.bson.BsonDocument);
    descriptor: (Lorg/bson/BsonDocument;)Lorg/bson/codecs/Codec;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // org.bson.BsonDocument document
         0: .line 226
            getstatic com.mongodb.internal.connection.RequestMessage.REGISTRY:Lorg/bson/codecs/configuration/CodecRegistry;
            aload 1 /* document */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            areturn
        end local 1 // org.bson.BsonDocument document
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lcom/mongodb/internal/connection/RequestMessage;
            0    1     1  document  Lorg/bson/BsonDocument;
    Signature: (Lorg/bson/BsonDocument;)Lorg/bson/codecs/Codec<Lorg/bson/BsonDocument;>;
    MethodParameters:
          Name  Flags
      document  final

  private <T> void addDocument(T, org.bson.codecs.Encoder<T>, org.bson.codecs.EncoderContext, org.bson.io.BsonOutput, org.bson.FieldNameValidator, int, java.util.List<org.bson.BsonElement>);
    descriptor: (Ljava/lang/Object;Lorg/bson/codecs/Encoder;Lorg/bson/codecs/EncoderContext;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;ILjava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=8
        start local 0 // com.mongodb.internal.connection.RequestMessage this
        start local 1 // java.lang.Object obj
        start local 2 // org.bson.codecs.Encoder encoder
        start local 3 // org.bson.codecs.EncoderContext encoderContext
        start local 4 // org.bson.io.BsonOutput bsonOutput
        start local 5 // org.bson.FieldNameValidator validator
        start local 6 // int maxDocumentSize
        start local 7 // java.util.List extraElements
         0: .line 233
            new org.bson.BsonBinaryWriter
            dup
            new org.bson.BsonWriterSettings
            dup
            invokespecial org.bson.BsonWriterSettings.<init>:()V
            new org.bson.BsonBinaryWriterSettings
            dup
            iload 6 /* maxDocumentSize */
            invokespecial org.bson.BsonBinaryWriterSettings.<init>:(I)V
         1: .line 234
            aload 4 /* bsonOutput */
            aload 5 /* validator */
         2: .line 233
            invokespecial org.bson.BsonBinaryWriter.<init>:(Lorg/bson/BsonWriterSettings;Lorg/bson/BsonBinaryWriterSettings;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;)V
            astore 8 /* bsonBinaryWriter */
        start local 8 // org.bson.BsonBinaryWriter bsonBinaryWriter
         3: .line 235
            aload 7 /* extraElements */
            ifnonnull 5
         4: .line 236
            aload 8 /* bsonBinaryWriter */
            goto 6
         5: .line 237
      StackMap locals: org.bson.BsonBinaryWriter
      StackMap stack:
            new com.mongodb.internal.connection.ElementExtendingBsonWriter
            dup
            aload 8 /* bsonBinaryWriter */
            aload 7 /* extraElements */
            invokespecial com.mongodb.internal.connection.ElementExtendingBsonWriter.<init>:(Lorg/bson/BsonBinaryWriter;Ljava/util/List;)V
         6: .line 235
      StackMap locals:
      StackMap stack: org.bson.BsonWriter
            astore 9 /* bsonWriter */
        start local 9 // org.bson.BsonWriter bsonWriter
         7: .line 238
            aload 2 /* encoder */
            aload 9 /* bsonWriter */
            aload 1 /* obj */
            aload 3 /* encoderContext */
            invokeinterface org.bson.codecs.Encoder.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
         8: .line 239
            return
        end local 9 // org.bson.BsonWriter bsonWriter
        end local 8 // org.bson.BsonBinaryWriter bsonBinaryWriter
        end local 7 // java.util.List extraElements
        end local 6 // int maxDocumentSize
        end local 5 // org.bson.FieldNameValidator validator
        end local 4 // org.bson.io.BsonOutput bsonOutput
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // org.bson.codecs.Encoder encoder
        end local 1 // java.lang.Object obj
        end local 0 // com.mongodb.internal.connection.RequestMessage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lcom/mongodb/internal/connection/RequestMessage;
            0    9     1               obj  TT;
            0    9     2           encoder  Lorg/bson/codecs/Encoder<TT;>;
            0    9     3    encoderContext  Lorg/bson/codecs/EncoderContext;
            0    9     4        bsonOutput  Lorg/bson/io/BsonOutput;
            0    9     5         validator  Lorg/bson/FieldNameValidator;
            0    9     6   maxDocumentSize  I
            0    9     7     extraElements  Ljava/util/List<Lorg/bson/BsonElement;>;
            3    9     8  bsonBinaryWriter  Lorg/bson/BsonBinaryWriter;
            7    9     9        bsonWriter  Lorg/bson/BsonWriter;
    Signature: <T:Ljava/lang/Object;>(TT;Lorg/bson/codecs/Encoder<TT;>;Lorg/bson/codecs/EncoderContext;Lorg/bson/io/BsonOutput;Lorg/bson/FieldNameValidator;ILjava/util/List<Lorg/bson/BsonElement;>;)V
    MethodParameters:
                 Name  Flags
      obj              final
      encoder          final
      encoderContext   final
      bsonOutput       final
      validator        final
      maxDocumentSize  final
      extraElements    final
}
SourceFile: "RequestMessage.java"
NestMembers:
  com.mongodb.internal.connection.RequestMessage$EncodingMetadata
InnerClasses:
  EncodingMetadata = com.mongodb.internal.connection.RequestMessage$EncodingMetadata of com.mongodb.internal.connection.RequestMessage
  public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext