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

  private final org.bson.json.StrictCharacterStreamJsonWriter strictJsonWriter;
    descriptor: Lorg/bson/json/StrictCharacterStreamJsonWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.io.Writer);
    descriptor: (Ljava/io/Writer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.io.Writer writer
         0: .line 46
            aload 0 /* this */
            aload 1 /* writer */
            new org.bson.json.JsonWriterSettings
            dup
            invokespecial org.bson.json.JsonWriterSettings.<init>:()V
            invokespecial org.bson.json.JsonWriter.<init>:(Ljava/io/Writer;Lorg/bson/json/JsonWriterSettings;)V
         1: .line 47
            return
        end local 1 // java.io.Writer writer
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bson/json/JsonWriter;
            0    2     1  writer  Ljava/io/Writer;
    MethodParameters:
        Name  Flags
      writer  final

  public void <init>(java.io.Writer, org.bson.json.JsonWriterSettings);
    descriptor: (Ljava/io/Writer;Lorg/bson/json/JsonWriterSettings;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.io.Writer writer
        start local 2 // org.bson.json.JsonWriterSettings settings
         0: .line 56
            aload 0 /* this */
            aload 2 /* settings */
            invokespecial org.bson.AbstractBsonWriter.<init>:(Lorg/bson/BsonWriterSettings;)V
         1: .line 57
            aload 0 /* this */
            aload 2 /* settings */
            putfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
         2: .line 58
            aload 0 /* this */
            new org.bson.json.JsonWriter$Context
            dup
            aload 0 /* this */
            aconst_null
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonWriter$Context.<init>:(Lorg/bson/json/JsonWriter;Lorg/bson/json/JsonWriter$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         3: .line 59
            aload 0 /* this */
            new org.bson.json.StrictCharacterStreamJsonWriter
            dup
            aload 1 /* writer */
            invokestatic org.bson.json.StrictCharacterStreamJsonWriterSettings.builder:()Lorg/bson/json/StrictCharacterStreamJsonWriterSettings$Builder;
         4: .line 60
            aload 2 /* settings */
            invokevirtual org.bson.json.JsonWriterSettings.isIndent:()Z
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder.indent:(Z)Lorg/bson/json/StrictCharacterStreamJsonWriterSettings$Builder;
         5: .line 61
            aload 2 /* settings */
            invokevirtual org.bson.json.JsonWriterSettings.getNewLineCharacters:()Ljava/lang/String;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder.newLineCharacters:(Ljava/lang/String;)Lorg/bson/json/StrictCharacterStreamJsonWriterSettings$Builder;
         6: .line 62
            aload 2 /* settings */
            invokevirtual org.bson.json.JsonWriterSettings.getIndentCharacters:()Ljava/lang/String;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder.indentCharacters:(Ljava/lang/String;)Lorg/bson/json/StrictCharacterStreamJsonWriterSettings$Builder;
         7: .line 63
            aload 2 /* settings */
            invokevirtual org.bson.json.JsonWriterSettings.getMaxLength:()I
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder.maxLength:(I)Lorg/bson/json/StrictCharacterStreamJsonWriterSettings$Builder;
         8: .line 64
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder.build:()Lorg/bson/json/StrictCharacterStreamJsonWriterSettings;
            invokespecial org.bson.json.StrictCharacterStreamJsonWriter.<init>:(Ljava/io/Writer;Lorg/bson/json/StrictCharacterStreamJsonWriterSettings;)V
         9: .line 59
            putfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
        10: .line 65
            return
        end local 2 // org.bson.json.JsonWriterSettings settings
        end local 1 // java.io.Writer writer
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/bson/json/JsonWriter;
            0   11     1    writer  Ljava/io/Writer;
            0   11     2  settings  Lorg/bson/json/JsonWriterSettings;
    MethodParameters:
          Name  Flags
      writer    final
      settings  final

  public java.io.Writer getWriter();
    descriptor: ()Ljava/io/Writer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 73
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.getWriter:()Ljava/io/Writer;
            areturn
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonWriter;

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

  protected void doWriteName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.lang.String name
         0: .line 83
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            aload 1 /* name */
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.writeName:(Ljava/lang/String;)V
         1: .line 84
            return
        end local 1 // java.lang.String name
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  protected void doWriteStartDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 88
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.writeStartObject:()V
         1: .line 90
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getState:()Lorg/bson/AbstractBsonWriter$State;
            getstatic org.bson.AbstractBsonWriter$State.SCOPE_DOCUMENT:Lorg/bson/AbstractBsonWriter$State;
            if_acmpne 2
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            goto 3
      StackMap locals:
      StackMap stack:
         2: getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
      StackMap locals:
      StackMap stack: org.bson.BsonContextType
         3: astore 1 /* contextType */
        start local 1 // org.bson.BsonContextType contextType
         4: .line 91
            aload 0 /* this */
            new org.bson.json.JsonWriter$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            aload 1 /* contextType */
            invokespecial org.bson.json.JsonWriter$Context.<init>:(Lorg/bson/json/JsonWriter;Lorg/bson/json/JsonWriter$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         5: .line 92
            return
        end local 1 // org.bson.BsonContextType contextType
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/bson/json/JsonWriter;
            4    6     1  contextType  Lorg/bson/BsonContextType;

  protected void doWriteEndDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 96
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.writeEndObject:()V
         1: .line 97
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 5
         2: .line 98
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter$Context.getParentContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         3: .line 99
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.writeEndDocument:()V
         4: .line 100
            goto 6
         5: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter$Context.getParentContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         6: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bson/json/JsonWriter;

  protected void doWriteStartArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 107
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.writeStartArray:()V
         1: .line 108
            aload 0 /* this */
            new org.bson.json.JsonWriter$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonWriter$Context.<init>:(Lorg/bson/json/JsonWriter;Lorg/bson/json/JsonWriter$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         2: .line 109
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/json/JsonWriter;

  protected void doWriteEndArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 113
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.writeEndArray:()V
         1: .line 114
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter$Context.getParentContext:()Lorg/bson/json/JsonWriter$Context;
            invokevirtual org.bson.json.JsonWriter.setContext:(Lorg/bson/AbstractBsonWriter$Context;)V
         2: .line 115
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/json/JsonWriter;

  protected void doWriteBinaryData(org.bson.BsonBinary);
    descriptor: (Lorg/bson/BsonBinary;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.BsonBinary binary
         0: .line 120
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getBinaryConverter:()Lorg/bson/json/Converter;
            aload 1 /* binary */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 121
            return
        end local 1 // org.bson.BsonBinary binary
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bson/json/JsonWriter;
            0    2     1  binary  Lorg/bson/BsonBinary;
    MethodParameters:
        Name  Flags
      binary  final

  public void doWriteBoolean(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // boolean value
         0: .line 125
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getBooleanConverter:()Lorg/bson/json/Converter;
            iload 1 /* value */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 126
            return
        end local 1 // boolean value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDateTime(long);
    descriptor: (J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // long value
         0: .line 130
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getDateTimeConverter:()Lorg/bson/json/Converter;
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 131
            return
        end local 1 // long value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.BsonDbPointer value
         0: .line 135
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getOutputMode:()Lorg/bson/json/JsonMode;
            getstatic org.bson.json.JsonMode.EXTENDED:Lorg/bson/json/JsonMode;
            if_acmpne 4
         1: .line 136
            new org.bson.json.JsonWriter$1
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonWriter$1.<init>:(Lorg/bson/json/JsonWriter;)V
         2: .line 147
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.JsonWriter$1.convert:(Lorg/bson/BsonDbPointer;Lorg/bson/json/StrictJsonWriter;)V
         3: .line 148
            goto 6
         4: .line 149
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonWriter$2
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonWriter$2.<init>:(Lorg/bson/json/JsonWriter;)V
         5: .line 158
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.JsonWriter$2.convert:(Lorg/bson/BsonDbPointer;Lorg/bson/json/StrictJsonWriter;)V
         6: .line 160
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bson.BsonDbPointer value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/bson/json/JsonWriter;
            0    7     1  value  Lorg/bson/BsonDbPointer;
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteDouble(double);
    descriptor: (D)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // double value
         0: .line 164
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getDoubleConverter:()Lorg/bson/json/Converter;
            dload 1 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 165
            return
        end local 1 // double value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            0    2     1  value  D
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteInt32(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // int value
         0: .line 169
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getInt32Converter:()Lorg/bson/json/Converter;
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 170
            return
        end local 1 // int value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            0    2     1  value  I
    MethodParameters:
       Name  Flags
      value  final

  protected void doWriteInt64(long);
    descriptor: (J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // long value
         0: .line 174
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getInt64Converter:()Lorg/bson/json/Converter;
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 175
            return
        end local 1 // long value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.types.Decimal128 value
         0: .line 179
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getDecimal128Converter:()Lorg/bson/json/Converter;
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 180
            return
        end local 1 // org.bson.types.Decimal128 value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.lang.String code
         0: .line 184
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getJavaScriptConverter:()Lorg/bson/json/Converter;
            aload 1 /* code */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 185
            return
        end local 1 // java.lang.String code
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;
            0    2     1  code  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      code  final

  protected void doWriteJavaScriptWithScope(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.lang.String code
         0: .line 189
            aload 0 /* this */
            invokevirtual org.bson.json.JsonWriter.writeStartDocument:()V
         1: .line 190
            aload 0 /* this */
            ldc "$code"
            aload 1 /* code */
            invokevirtual org.bson.json.JsonWriter.writeString:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 191
            aload 0 /* this */
            ldc "$scope"
            invokevirtual org.bson.json.JsonWriter.writeName:(Ljava/lang/String;)V
         3: .line 192
            return
        end local 1 // java.lang.String code
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/json/JsonWriter;
            0    4     1  code  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      code  final

  protected void doWriteMaxKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 196
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getMaxKeyConverter:()Lorg/bson/json/Converter;
            aconst_null
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 197
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;

  protected void doWriteMinKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 201
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getMinKeyConverter:()Lorg/bson/json/Converter;
            aconst_null
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 202
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;

  public void doWriteNull();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 206
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getNullConverter:()Lorg/bson/json/Converter;
            aconst_null
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 207
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;

  public void doWriteObjectId(org.bson.types.ObjectId);
    descriptor: (Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.types.ObjectId objectId
         0: .line 211
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getObjectIdConverter:()Lorg/bson/json/Converter;
            aload 1 /* objectId */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 212
            return
        end local 1 // org.bson.types.ObjectId objectId
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bson/json/JsonWriter;
            0    2     1  objectId  Lorg/bson/types/ObjectId;
    MethodParameters:
          Name  Flags
      objectId  final

  public void doWriteRegularExpression(org.bson.BsonRegularExpression);
    descriptor: (Lorg/bson/BsonRegularExpression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.BsonRegularExpression regularExpression
         0: .line 216
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getRegularExpressionConverter:()Lorg/bson/json/Converter;
            aload 1 /* regularExpression */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 217
            return
        end local 1 // org.bson.BsonRegularExpression regularExpression
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/bson/json/JsonWriter;
            0    2     1  regularExpression  Lorg/bson/BsonRegularExpression;
    MethodParameters:
                   Name  Flags
      regularExpression  final

  public void doWriteString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.lang.String value
         0: .line 221
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getStringConverter:()Lorg/bson/json/Converter;
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 222
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // java.lang.String value
         0: .line 226
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getSymbolConverter:()Lorg/bson/json/Converter;
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 227
            return
        end local 1 // java.lang.String value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonWriter this
        start local 1 // org.bson.BsonTimestamp value
         0: .line 231
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getTimestampConverter:()Lorg/bson/json/Converter;
            aload 1 /* value */
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 232
            return
        end local 1 // org.bson.BsonTimestamp value
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/json/JsonWriter;
            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.json.JsonWriter this
         0: .line 236
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.settings:Lorg/bson/json/JsonWriterSettings;
            invokevirtual org.bson.json.JsonWriterSettings.getUndefinedConverter:()Lorg/bson/json/Converter;
            aconst_null
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokeinterface org.bson.json.Converter.convert:(Ljava/lang/Object;Lorg/bson/json/StrictJsonWriter;)V
         1: .line 237
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 241
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.flush:()V
         1: .line 242
            return
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonWriter;

  public boolean isTruncated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 252
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.isTruncated:()Z
            ireturn
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonWriter;

  protected boolean abortPipe();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonWriter this
         0: .line 257
            aload 0 /* this */
            getfield org.bson.json.JsonWriter.strictJsonWriter:Lorg/bson/json/StrictCharacterStreamJsonWriter;
            invokevirtual org.bson.json.StrictCharacterStreamJsonWriter.isTruncated:()Z
            ireturn
        end local 0 // org.bson.json.JsonWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonWriter;

  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.json.JsonWriter.getContext:()Lorg/bson/json/JsonWriter$Context;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JsonWriter.java"
NestMembers:
  org.bson.json.JsonWriter$1  org.bson.json.JsonWriter$2  org.bson.json.JsonWriter$Context
InnerClasses:
  public Context = org.bson.AbstractBsonWriter$Context of org.bson.AbstractBsonWriter
  public final State = org.bson.AbstractBsonWriter$State of org.bson.AbstractBsonWriter
  org.bson.json.JsonWriter$1
  org.bson.json.JsonWriter$2
  public Context = org.bson.json.JsonWriter$Context of org.bson.json.JsonWriter
  public final Builder = org.bson.json.StrictCharacterStreamJsonWriterSettings$Builder of org.bson.json.StrictCharacterStreamJsonWriterSettings