public abstract class org.bson.BsonValue
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bson.BsonValue
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 31
            return
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public abstract org.bson.BsonType getBsonType();
    descriptor: ()Lorg/bson/BsonType;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public org.bson.BsonDocument asDocument();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 47
            aload 0 /* this */
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 48
            aload 0 /* this */
            checkcast org.bson.BsonDocument
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonArray asArray();
    descriptor: ()Lorg/bson/BsonArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 58
            aload 0 /* this */
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 59
            aload 0 /* this */
            checkcast org.bson.BsonArray
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonString asString();
    descriptor: ()Lorg/bson/BsonString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 69
            aload 0 /* this */
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 70
            aload 0 /* this */
            checkcast org.bson.BsonString
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonNumber asNumber();
    descriptor: ()Lorg/bson/BsonNumber;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 80
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            if_acmpeq 4
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            if_acmpeq 4
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            if_acmpeq 4
         1: .line 81
            new org.bson.BsonInvalidOperationException
            dup
            ldc "Value expected to be of a numerical BSON type is of unexpected type %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 82
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            aastore
         3: .line 81
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.BsonInvalidOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            checkcast org.bson.BsonNumber
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonInt32 asInt32();
    descriptor: ()Lorg/bson/BsonInt32;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 94
            aload 0 /* this */
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 95
            aload 0 /* this */
            checkcast org.bson.BsonInt32
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonInt64 asInt64();
    descriptor: ()Lorg/bson/BsonInt64;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 105
            aload 0 /* this */
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 106
            aload 0 /* this */
            checkcast org.bson.BsonInt64
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonDecimal128 asDecimal128();
    descriptor: ()Lorg/bson/BsonDecimal128;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 117
            aload 0 /* this */
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 118
            aload 0 /* this */
            checkcast org.bson.BsonDecimal128
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonDouble asDouble();
    descriptor: ()Lorg/bson/BsonDouble;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 128
            aload 0 /* this */
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 129
            aload 0 /* this */
            checkcast org.bson.BsonDouble
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonBoolean asBoolean();
    descriptor: ()Lorg/bson/BsonBoolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 139
            aload 0 /* this */
            getstatic org.bson.BsonType.BOOLEAN:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 140
            aload 0 /* this */
            checkcast org.bson.BsonBoolean
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonObjectId asObjectId();
    descriptor: ()Lorg/bson/BsonObjectId;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 150
            aload 0 /* this */
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 151
            aload 0 /* this */
            checkcast org.bson.BsonObjectId
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonDbPointer asDBPointer();
    descriptor: ()Lorg/bson/BsonDbPointer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 161
            aload 0 /* this */
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 162
            aload 0 /* this */
            checkcast org.bson.BsonDbPointer
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonTimestamp asTimestamp();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 172
            aload 0 /* this */
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 173
            aload 0 /* this */
            checkcast org.bson.BsonTimestamp
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonBinary asBinary();
    descriptor: ()Lorg/bson/BsonBinary;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 183
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 184
            aload 0 /* this */
            checkcast org.bson.BsonBinary
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonDateTime asDateTime();
    descriptor: ()Lorg/bson/BsonDateTime;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 194
            aload 0 /* this */
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 195
            aload 0 /* this */
            checkcast org.bson.BsonDateTime
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonSymbol asSymbol();
    descriptor: ()Lorg/bson/BsonSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 205
            aload 0 /* this */
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 206
            aload 0 /* this */
            checkcast org.bson.BsonSymbol
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonRegularExpression asRegularExpression();
    descriptor: ()Lorg/bson/BsonRegularExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 216
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 217
            aload 0 /* this */
            checkcast org.bson.BsonRegularExpression
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonJavaScript asJavaScript();
    descriptor: ()Lorg/bson/BsonJavaScript;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 227
            aload 0 /* this */
            getstatic org.bson.BsonType.JAVASCRIPT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 228
            aload 0 /* this */
            checkcast org.bson.BsonJavaScript
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public org.bson.BsonJavaScriptWithScope asJavaScriptWithScope();
    descriptor: ()Lorg/bson/BsonJavaScriptWithScope;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 238
            aload 0 /* this */
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonValue.throwIfInvalidType:(Lorg/bson/BsonType;)V
         1: .line 239
            aload 0 /* this */
            checkcast org.bson.BsonJavaScriptWithScope
            areturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public boolean isNull();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 249
            aload 0 /* this */
            instanceof org.bson.BsonNull
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isDocument();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 258
            aload 0 /* this */
            instanceof org.bson.BsonDocument
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isArray();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 267
            aload 0 /* this */
            instanceof org.bson.BsonArray
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isString();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 276
            aload 0 /* this */
            instanceof org.bson.BsonString
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isNumber();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 285
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.isInt32:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.isInt64:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.isDouble:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonValue;

  public boolean isInt32();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 294
            aload 0 /* this */
            instanceof org.bson.BsonInt32
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isInt64();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 303
            aload 0 /* this */
            instanceof org.bson.BsonInt64
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isDecimal128();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 313
            aload 0 /* this */
            instanceof org.bson.BsonDecimal128
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isDouble();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 322
            aload 0 /* this */
            instanceof org.bson.BsonDouble
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isBoolean();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 332
            aload 0 /* this */
            instanceof org.bson.BsonBoolean
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isObjectId();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 342
            aload 0 /* this */
            instanceof org.bson.BsonObjectId
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isDBPointer();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 351
            aload 0 /* this */
            instanceof org.bson.BsonDbPointer
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isTimestamp();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 360
            aload 0 /* this */
            instanceof org.bson.BsonTimestamp
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isBinary();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 369
            aload 0 /* this */
            instanceof org.bson.BsonBinary
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isDateTime();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 378
            aload 0 /* this */
            instanceof org.bson.BsonDateTime
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isSymbol();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 387
            aload 0 /* this */
            instanceof org.bson.BsonSymbol
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isRegularExpression();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 396
            aload 0 /* this */
            instanceof org.bson.BsonRegularExpression
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isJavaScript();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 405
            aload 0 /* this */
            instanceof org.bson.BsonJavaScript
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  public boolean isJavaScriptWithScope();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonValue this
         0: .line 414
            aload 0 /* this */
            instanceof org.bson.BsonJavaScriptWithScope
            ireturn
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonValue;

  private void throwIfInvalidType(org.bson.BsonType);
    descriptor: (Lorg/bson/BsonType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bson.BsonValue this
        start local 1 // org.bson.BsonType expectedType
         0: .line 418
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            aload 1 /* expectedType */
            if_acmpeq 4
         1: .line 419
            new org.bson.BsonInvalidOperationException
            dup
            ldc "Value expected to be of type %s is of unexpected type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 420
            aload 1 /* expectedType */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.bson.BsonValue.getBsonType:()Lorg/bson/BsonType;
            aastore
         3: .line 419
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.BsonInvalidOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 422
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bson.BsonType expectedType
        end local 0 // org.bson.BsonValue this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/bson/BsonValue;
            0    5     1  expectedType  Lorg/bson/BsonType;
    MethodParameters:
              Name  Flags
      expectedType  final
}
SourceFile: "BsonValue.java"