public class org.bson.BsonDocumentWriter extends org.bson.AbstractBsonWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.BsonDocumentWriter
  super_class: org.bson.AbstractBsonWriter
{
  private final org.bson.BsonDocument document;
    descriptor: Lorg/bson/BsonDocument;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$org$bson$AbstractBsonWriter$State;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(org.bson.BsonDocument);
    descriptor: (Lorg/bson/BsonDocument;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonDocument document
         0: .line 44
            aload 0 /* this */
            new org.bson.BsonWriterSettings
            dup
            invokespecial org.bson.BsonWriterSettings.<init>:()V
            invokespecial org.bson.AbstractBsonWriter.<init>:(Lorg/bson/BsonWriterSettings;)V
         1: .line 45
            aload 0 /* this */
            aload 1 /* document */
            putfield org.bson.BsonDocumentWriter.document:Lorg/bson/BsonDocument;
         2: .line 46
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         3: .line 47
            return
        end local 1 // org.bson.BsonDocument document
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/bson/BsonDocumentWriter;
            0    4     1  document  Lorg/bson/BsonDocument;
    MethodParameters:
          Name  Flags
      document  final

  public org.bson.BsonDocument getDocument();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 55
            aload 0 /* this */
            getfield org.bson.BsonDocumentWriter.document:Lorg/bson/BsonDocument;
            areturn
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWriter;

  protected void doWriteStartDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 60
            invokestatic org.bson.BsonDocumentWriter.$SWITCH_TABLE$org$bson$AbstractBsonWriter$State:()[I
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getState:()Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 1
                    2: 7
                    3: 3
                    4: 5
              default: 7
          }
         1: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bson.BsonDocumentWriter.document:Lorg/bson/BsonDocument;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;Lorg/bson/BsonValue;Lorg/bson/BsonContextType;Lorg/bson/BsonDocumentWriter$Context;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         2: .line 63
            goto 8
         3: .line 65
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;Lorg/bson/BsonValue;Lorg/bson/BsonContextType;Lorg/bson/BsonDocumentWriter$Context;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         4: .line 66
            goto 8
         5: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;Lorg/bson/BsonValue;Lorg/bson/BsonContextType;Lorg/bson/BsonDocumentWriter$Context;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         6: .line 69
            goto 8
         7: .line 71
      StackMap locals:
      StackMap stack:
            new org.bson.BsonInvalidOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected state "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getState:()Lorg/bson/AbstractBsonWriter$State;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.BsonInvalidOperationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 73
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bson/BsonDocumentWriter;

  protected void doWriteEndDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 77
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            getfield org.bson.BsonDocumentWriter$Context.container:Lorg/bson/BsonValue;
            astore 1 /* value */
        start local 1 // org.bson.BsonValue value
         1: .line 78
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter$Context.getParentContext:()Lorg/bson/AbstractBsonWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         2: .line 80
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            if_acmpne 8
         3: .line 81
            aload 1 /* value */
            checkcast org.bson.BsonDocument
            astore 2 /* scope */
        start local 2 // org.bson.BsonDocument scope
         4: .line 82
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            getfield org.bson.BsonDocumentWriter$Context.container:Lorg/bson/BsonValue;
            checkcast org.bson.BsonString
            astore 3 /* code */
        start local 3 // org.bson.BsonString code
         5: .line 83
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter$Context.getParentContext:()Lorg/bson/AbstractBsonWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         6: .line 84
            aload 0 /* this */
            new org.bson.BsonJavaScriptWithScope
            dup
            aload 3 /* code */
            invokevirtual org.bson.BsonString.getValue:()Ljava/lang/String;
            aload 2 /* scope */
            invokespecial org.bson.BsonJavaScriptWithScope.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
        end local 3 // org.bson.BsonString code
        end local 2 // org.bson.BsonDocument scope
         7: .line 85
            goto 10
      StackMap locals: org.bson.BsonValue
      StackMap stack:
         8: aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            if_acmpeq 10
         9: .line 86
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
        10: .line 88
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bson.BsonValue value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/bson/BsonDocumentWriter;
            1   11     1  value  Lorg/bson/BsonValue;
            4    7     2  scope  Lorg/bson/BsonDocument;
            5    7     3   code  Lorg/bson/BsonString;

  protected void doWriteStartArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 92
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            new org.bson.BsonArray
            dup
            invokespecial org.bson.BsonArray.<init>:()V
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;Lorg/bson/BsonValue;Lorg/bson/BsonContextType;Lorg/bson/BsonDocumentWriter$Context;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         1: .line 93
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWriter;

  protected void doWriteEndArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 97
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            getfield org.bson.BsonDocumentWriter$Context.container:Lorg/bson/BsonValue;
            astore 1 /* array */
        start local 1 // org.bson.BsonValue array
         1: .line 98
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter$Context.getParentContext:()Lorg/bson/AbstractBsonWriter$Context;
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         2: .line 99
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         3: .line 100
            return
        end local 1 // org.bson.BsonValue array
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bson/BsonDocumentWriter;
            1    4     1  array  Lorg/bson/BsonValue;

  protected void doWriteBinaryData(org.bson.BsonBinary);
    descriptor: (Lorg/bson/BsonBinary;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonBinary value
         0: .line 104
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 105
            return
        end local 1 // org.bson.BsonBinary value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/BsonBinary;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteBoolean(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // boolean value
         0: .line 109
            aload 0 /* this */
            iload 1 /* value */
            invokestatic org.bson.BsonBoolean.valueOf:(Z)Lorg/bson/BsonBoolean;
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 110
            return
        end local 1 // boolean value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDateTime(long);
    descriptor: (J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // long value
         0: .line 114
            aload 0 /* this */
            new org.bson.BsonDateTime
            dup
            lload 1 /* value */
            invokespecial org.bson.BsonDateTime.<init>:(J)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 115
            return
        end local 1 // long value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  J
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDBPointer(org.bson.BsonDbPointer);
    descriptor: (Lorg/bson/BsonDbPointer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonDbPointer value
         0: .line 119
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 120
            return
        end local 1 // org.bson.BsonDbPointer value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/BsonDbPointer;
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDouble(double);
    descriptor: (D)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // double value
         0: .line 124
            aload 0 /* this */
            new org.bson.BsonDouble
            dup
            dload 1 /* value */
            invokespecial org.bson.BsonDouble.<init>:(D)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 125
            return
        end local 1 // double value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  D
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteInt32(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // int value
         0: .line 129
            aload 0 /* this */
            new org.bson.BsonInt32
            dup
            iload 1 /* value */
            invokespecial org.bson.BsonInt32.<init>:(I)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 130
            return
        end local 1 // int value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  I
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteInt64(long);
    descriptor: (J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // long value
         0: .line 134
            aload 0 /* this */
            new org.bson.BsonInt64
            dup
            lload 1 /* value */
            invokespecial org.bson.BsonInt64.<init>:(J)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 135
            return
        end local 1 // long value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  J
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDecimal128(org.bson.types.Decimal128);
    descriptor: (Lorg/bson/types/Decimal128;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.types.Decimal128 value
         0: .line 139
            aload 0 /* this */
            new org.bson.BsonDecimal128
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonDecimal128.<init>:(Lorg/bson/types/Decimal128;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 140
            return
        end local 1 // org.bson.types.Decimal128 value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/types/Decimal128;
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteJavaScript(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // java.lang.String value
         0: .line 144
            aload 0 /* this */
            new org.bson.BsonJavaScript
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonJavaScript.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 145
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteJavaScriptWithScope(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // java.lang.String value
         0: .line 149
            aload 0 /* this */
            new org.bson.BsonDocumentWriter$Context
            dup
            aload 0 /* this */
            new org.bson.BsonString
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            invokespecial org.bson.BsonDocumentWriter$Context.<init>:(Lorg/bson/BsonDocumentWriter;Lorg/bson/BsonValue;Lorg/bson/BsonContextType;Lorg/bson/BsonDocumentWriter$Context;)V
            invokevirtual org.bson.BsonDocumentWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         1: .line 150
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteMaxKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 154
            aload 0 /* this */
            new org.bson.BsonMaxKey
            dup
            invokespecial org.bson.BsonMaxKey.<init>:()V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 155
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWriter;

  protected void doWriteMinKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 159
            aload 0 /* this */
            new org.bson.BsonMinKey
            dup
            invokespecial org.bson.BsonMinKey.<init>:()V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 160
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWriter;

  public void doWriteNull();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 164
            aload 0 /* this */
            getstatic org.bson.BsonNull.VALUE:Lorg/bson/BsonNull;
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 165
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWriter;

  public void doWriteObjectId(org.bson.types.ObjectId);
    descriptor: (Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.types.ObjectId value
         0: .line 169
            aload 0 /* this */
            new org.bson.BsonObjectId
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonObjectId.<init>:(Lorg/bson/types/ObjectId;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 170
            return
        end local 1 // org.bson.types.ObjectId value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/types/ObjectId;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteRegularExpression(org.bson.BsonRegularExpression);
    descriptor: (Lorg/bson/BsonRegularExpression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonRegularExpression value
         0: .line 174
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 175
            return
        end local 1 // org.bson.BsonRegularExpression value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/BsonRegularExpression;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // java.lang.String value
         0: .line 179
            aload 0 /* this */
            new org.bson.BsonString
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonString.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 180
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteSymbol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // java.lang.String value
         0: .line 184
            aload 0 /* this */
            new org.bson.BsonSymbol
            dup
            aload 1 /* value */
            invokespecial org.bson.BsonSymbol.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 185
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteTimestamp(org.bson.BsonTimestamp);
    descriptor: (Lorg/bson/BsonTimestamp;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonTimestamp value
         0: .line 189
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 190
            return
        end local 1 // org.bson.BsonTimestamp value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/BsonTimestamp;
    MethodParameters:
       Name  Flags
      value  final

  public void doWriteUndefined();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 194
            aload 0 /* this */
            new org.bson.BsonUndefined
            dup
            invokespecial org.bson.BsonUndefined.<init>:()V
            invokevirtual org.bson.BsonDocumentWriter.write:(Lorg/bson/BsonValue;)V
         1: .line 195
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWriter;

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 199
            return
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWriter;

  protected org.bson.BsonDocumentWriter$Context getContext();
    descriptor: ()Lorg/bson/BsonDocumentWriter$Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWriter this
         0: .line 203
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonWriter.getContext:()Lorg/bson/AbstractBsonWriter$Context;
            checkcast org.bson.BsonDocumentWriter$Context
            areturn
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWriter;

  private void write(org.bson.BsonValue);
    descriptor: (Lorg/bson/BsonValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWriter this
        start local 1 // org.bson.BsonValue value
         0: .line 207
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            aload 1 /* value */
            invokevirtual org.bson.BsonDocumentWriter$Context.add:(Lorg/bson/BsonValue;)V
         1: .line 208
            return
        end local 1 // org.bson.BsonValue value
        end local 0 // org.bson.BsonDocumentWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BsonDocumentWriter;
            0    2     1  value  Lorg/bson/BsonValue;
    MethodParameters:
       Name  Flags
      value  final

  protected org.bson.AbstractBsonWriter$Context getContext();
    descriptor: ()Lorg/bson/AbstractBsonWriter$Context;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.bson.BsonDocumentWriter.getContext:()Lorg/bson/BsonDocumentWriter$Context;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$bson$AbstractBsonWriter$State();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 34
            getstatic org.bson.BsonDocumentWriter.$SWITCH_TABLE$org$bson$AbstractBsonWriter$State:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.AbstractBsonWriter$State.values:()[Lorg/bson/AbstractBsonWriter$State;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.AbstractBsonWriter$State.CLOSED:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.AbstractBsonWriter$State.DONE:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iconst_5
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.AbstractBsonWriter$State.INITIAL:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.AbstractBsonWriter$State.NAME:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.AbstractBsonWriter$State.SCOPE_DOCUMENT:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.AbstractBsonWriter$State.VALUE:Lorg/bson/AbstractBsonWriter$State;
            invokevirtual org.bson.AbstractBsonWriter$State.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic org.bson.BsonDocumentWriter.$SWITCH_TABLE$org$bson$AbstractBsonWriter$State:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
}
SourceFile: "BsonDocumentWriter.java"
NestMembers:
  org.bson.BsonDocumentWriter$Context
InnerClasses:
  public Context = org.bson.AbstractBsonWriter$Context of org.bson.AbstractBsonWriter
  public final State = org.bson.AbstractBsonWriter$State of org.bson.AbstractBsonWriter
  private Context = org.bson.BsonDocumentWriter$Context of org.bson.BsonDocumentWriter