final class com.mongodb.client.model.changestream.ChangeStreamDocumentCodec<TResult> implements org.bson.codecs.Codec<com.mongodb.client.model.changestream.ChangeStreamDocument<TResult>>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.client.model.changestream.ChangeStreamDocumentCodec
  super_class: java.lang.Object
{
  private static final com.mongodb.client.model.changestream.OperationTypeCodec OPERATION_TYPE_CODEC;
    descriptor: Lcom/mongodb/client/model/changestream/OperationTypeCodec;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.bson.codecs.Codec<com.mongodb.client.model.changestream.ChangeStreamDocument<TResult>> codec;
    descriptor: Lorg/bson/codecs/Codec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/bson/codecs/Codec<Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 38
            new com.mongodb.client.model.changestream.OperationTypeCodec
            dup
            invokespecial com.mongodb.client.model.changestream.OperationTypeCodec.<init>:()V
            putstatic com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.OPERATION_TYPE_CODEC:Lcom/mongodb/client/model/changestream/OperationTypeCodec;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Class<TResult>, org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Ljava/lang/Class;Lorg/bson/codecs/configuration/CodecRegistry;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
        start local 1 // java.lang.Class fullDocumentClass
        start local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            ldc Lcom/mongodb/client/model/changestream/ChangeStreamDocument;
            invokestatic org.bson.codecs.pojo.ClassModel.builder:(Ljava/lang/Class;)Lorg/bson/codecs/pojo/ClassModelBuilder;
            astore 3 /* classModelBuilder */
        start local 3 // org.bson.codecs.pojo.ClassModelBuilder classModelBuilder
         2: .line 45
            aload 3 /* classModelBuilder */
            ldc "fullDocument"
            invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getProperty:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
            aload 2 /* codecRegistry */
            aload 1 /* fullDocumentClass */
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.codec:(Lorg/bson/codecs/Codec;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
            pop
         3: .line 46
            aload 3 /* classModelBuilder */
            ldc "operationType"
            invokevirtual org.bson.codecs.pojo.ClassModelBuilder.getProperty:(Ljava/lang/String;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
            getstatic com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.OPERATION_TYPE_CODEC:Lcom/mongodb/client/model/changestream/OperationTypeCodec;
            invokevirtual org.bson.codecs.pojo.PropertyModelBuilder.codec:(Lorg/bson/codecs/Codec;)Lorg/bson/codecs/pojo/PropertyModelBuilder;
            pop
         4: .line 47
            aload 3 /* classModelBuilder */
            invokevirtual org.bson.codecs.pojo.ClassModelBuilder.build:()Lorg/bson/codecs/pojo/ClassModel;
            astore 4 /* changeStreamDocumentClassModel */
        start local 4 // org.bson.codecs.pojo.ClassModel changeStreamDocumentClassModel
         5: .line 49
            invokestatic org.bson.codecs.pojo.PojoCodecProvider.builder:()Lorg/bson/codecs/pojo/PojoCodecProvider$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
         6: .line 50
            ldc Lcom/mongodb/MongoNamespace;
            aastore
            invokevirtual org.bson.codecs.pojo.PojoCodecProvider$Builder.register:([Ljava/lang/Class;)Lorg/bson/codecs/pojo/PojoCodecProvider$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
         7: .line 51
            ldc Lcom/mongodb/client/model/changestream/UpdateDescription;
            aastore
            invokevirtual org.bson.codecs.pojo.PojoCodecProvider$Builder.register:([Ljava/lang/Class;)Lorg/bson/codecs/pojo/PojoCodecProvider$Builder;
            iconst_1
            anewarray org.bson.codecs.pojo.ClassModel
            dup
            iconst_0
         8: .line 52
            aload 4 /* changeStreamDocumentClassModel */
            aastore
            invokevirtual org.bson.codecs.pojo.PojoCodecProvider$Builder.register:([Lorg/bson/codecs/pojo/ClassModel;)Lorg/bson/codecs/pojo/PojoCodecProvider$Builder;
         9: .line 53
            invokevirtual org.bson.codecs.pojo.PojoCodecProvider$Builder.build:()Lorg/bson/codecs/pojo/PojoCodecProvider;
        10: .line 49
            astore 5 /* provider */
        start local 5 // org.bson.codecs.pojo.PojoCodecProvider provider
        11: .line 55
            iconst_2
            anewarray org.bson.codecs.configuration.CodecRegistry
            dup
            iconst_0
            iconst_2
            anewarray org.bson.codecs.configuration.CodecProvider
            dup
            iconst_0
            aload 5 /* provider */
            aastore
            dup
            iconst_1
            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;
            aastore
            dup
            iconst_1
            aload 2 /* codecRegistry */
            aastore
            invokestatic org.bson.codecs.configuration.CodecRegistries.fromRegistries:([Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/codecs/configuration/CodecRegistry;
            astore 6 /* registry */
        start local 6 // org.bson.codecs.configuration.CodecRegistry registry
        12: .line 56
            aload 0 /* this */
        13: .line 57
            aload 6 /* registry */
            ldc Lcom/mongodb/client/model/changestream/ChangeStreamDocument;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
        14: .line 56
            putfield com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.codec:Lorg/bson/codecs/Codec;
        15: .line 58
            return
        end local 6 // org.bson.codecs.configuration.CodecRegistry registry
        end local 5 // org.bson.codecs.pojo.PojoCodecProvider provider
        end local 4 // org.bson.codecs.pojo.ClassModel changeStreamDocumentClassModel
        end local 3 // org.bson.codecs.pojo.ClassModelBuilder classModelBuilder
        end local 2 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 1 // java.lang.Class fullDocumentClass
        end local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   16     0                            this  Lcom/mongodb/client/model/changestream/ChangeStreamDocumentCodec<TTResult;>;
            0   16     1               fullDocumentClass  Ljava/lang/Class<TTResult;>;
            0   16     2                   codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
            2   16     3               classModelBuilder  Lorg/bson/codecs/pojo/ClassModelBuilder<Lcom/mongodb/client/model/changestream/ChangeStreamDocument;>;
            5   16     4  changeStreamDocumentClassModel  Lorg/bson/codecs/pojo/ClassModel<Lcom/mongodb/client/model/changestream/ChangeStreamDocument;>;
           11   16     5                        provider  Lorg/bson/codecs/pojo/PojoCodecProvider;
           12   16     6                        registry  Lorg/bson/codecs/configuration/CodecRegistry;
    Signature: (Ljava/lang/Class<TTResult;>;Lorg/bson/codecs/configuration/CodecRegistry;)V
    MethodParameters:
                   Name  Flags
      fullDocumentClass  final
      codecRegistry      final

  public com.mongodb.client.model.changestream.ChangeStreamDocument<TResult> decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/client/model/changestream/ChangeStreamDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
        start local 1 // org.bson.BsonReader reader
        start local 2 // org.bson.codecs.DecoderContext decoderContext
         0: .line 62
            aload 0 /* this */
            getfield com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.codec:Lorg/bson/codecs/Codec;
            aload 1 /* reader */
            aload 2 /* decoderContext */
            invokeinterface org.bson.codecs.Codec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
            checkcast com.mongodb.client.model.changestream.ChangeStreamDocument
            areturn
        end local 2 // org.bson.codecs.DecoderContext decoderContext
        end local 1 // org.bson.BsonReader reader
        end local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/mongodb/client/model/changestream/ChangeStreamDocumentCodec<TTResult;>;
            0    1     1          reader  Lorg/bson/BsonReader;
            0    1     2  decoderContext  Lorg/bson/codecs/DecoderContext;
    Signature: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;
    MethodParameters:
                Name  Flags
      reader          final
      decoderContext  final

  public void encode(org.bson.BsonWriter, com.mongodb.client.model.changestream.ChangeStreamDocument<TResult>, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Lcom/mongodb/client/model/changestream/ChangeStreamDocument;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
        start local 1 // org.bson.BsonWriter writer
        start local 2 // com.mongodb.client.model.changestream.ChangeStreamDocument value
        start local 3 // org.bson.codecs.EncoderContext encoderContext
         0: .line 67
            aload 0 /* this */
            getfield com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.codec:Lorg/bson/codecs/Codec;
            aload 1 /* writer */
            aload 2 /* value */
            aload 3 /* encoderContext */
            invokeinterface org.bson.codecs.Codec.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
         1: .line 68
            return
        end local 3 // org.bson.codecs.EncoderContext encoderContext
        end local 2 // com.mongodb.client.model.changestream.ChangeStreamDocument value
        end local 1 // org.bson.BsonWriter writer
        end local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/mongodb/client/model/changestream/ChangeStreamDocumentCodec<TTResult;>;
            0    2     1          writer  Lorg/bson/BsonWriter;
            0    2     2           value  Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;
            0    2     3  encoderContext  Lorg/bson/codecs/EncoderContext;
    Signature: (Lorg/bson/BsonWriter;Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;Lorg/bson/codecs/EncoderContext;)V
    MethodParameters:
                Name  Flags
      writer          final
      value           final
      encoderContext  final

  public java.lang.Class<com.mongodb.client.model.changestream.ChangeStreamDocument<TResult>> getEncoderClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
         0: .line 72
            ldc Lcom/mongodb/client/model/changestream/ChangeStreamDocument;
            areturn
        end local 0 // com.mongodb.client.model.changestream.ChangeStreamDocumentCodec this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/client/model/changestream/ChangeStreamDocumentCodec<TTResult;>;
    Signature: ()Ljava/lang/Class<Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;>;

  public java.lang.Object decode(org.bson.BsonReader, org.bson.codecs.DecoderContext);
    descriptor: (Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.decode:(Lorg/bson/BsonReader;Lorg/bson/codecs/DecoderContext;)Lcom/mongodb/client/model/changestream/ChangeStreamDocument;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void encode(org.bson.BsonWriter, java.lang.Object, org.bson.codecs.EncoderContext);
    descriptor: (Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast com.mongodb.client.model.changestream.ChangeStreamDocument
            aload 3
            invokevirtual com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.encode:(Lorg/bson/BsonWriter;Lcom/mongodb/client/model/changestream/ChangeStreamDocument;Lorg/bson/codecs/EncoderContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <TResult:Ljava/lang/Object;>Ljava/lang/Object;Lorg/bson/codecs/Codec<Lcom/mongodb/client/model/changestream/ChangeStreamDocument<TTResult;>;>;
SourceFile: "ChangeStreamDocumentCodec.java"
InnerClasses:
  public final Builder = org.bson.codecs.pojo.PojoCodecProvider$Builder of org.bson.codecs.pojo.PojoCodecProvider