class org.bson.json.JsonToken
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bson.json.JsonToken
  super_class: java.lang.Object
{
  private final java.lang.Object value;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  void <init>(org.bson.json.JsonTokenType, java.lang.Object);
    descriptor: (Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bson.json.JsonToken this
        start local 1 // org.bson.json.JsonTokenType type
        start local 2 // java.lang.Object value
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 2 /* value */
            putfield org.bson.json.JsonToken.value:Ljava/lang/Object;
         2: .line 34
            aload 0 /* this */
            aload 1 /* type */
            putfield org.bson.json.JsonToken.type:Lorg/bson/json/JsonTokenType;
         3: .line 35
            return
        end local 2 // java.lang.Object value
        end local 1 // org.bson.json.JsonTokenType type
        end local 0 // org.bson.json.JsonToken this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bson/json/JsonToken;
            0    4     1   type  Lorg/bson/json/JsonTokenType;
            0    4     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      type   final
      value  final

  public java.lang.Object getValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonToken this
         0: .line 38
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            areturn
        end local 0 // org.bson.json.JsonToken this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonToken;

  public <T> T getValue(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.bson.json.JsonToken this
        start local 1 // java.lang.Class clazz
         0: .line 43
            ldc Ljava/lang/Long;
            aload 1 /* clazz */
            if_acmpne 7
         1: .line 44
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.Integer
            ifeq 4
         2: .line 45
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.longValue:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
         4: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.String
            ifeq 28
         5: .line 47
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
         6: areturn
         7: .line 49
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Integer;
            aload 1 /* clazz */
            if_acmpne 11
         8: .line 50
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.String
            ifeq 28
         9: .line 51
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        10: areturn
        11: .line 53
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Double;
            aload 1 /* clazz */
            if_acmpne 15
        12: .line 54
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.String
            ifeq 28
        13: .line 55
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        14: areturn
        15: .line 57
      StackMap locals:
      StackMap stack:
            ldc Lorg/bson/types/Decimal128;
            aload 1 /* clazz */
            if_acmpne 28
        16: .line 58
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.Integer
            ifeq 19
        17: .line 59
            aload 1 /* clazz */
            new org.bson.types.Decimal128
            dup
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            invokespecial org.bson.types.Decimal128.<init>:(J)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        18: areturn
        19: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.Long
            ifeq 22
        20: .line 61
            aload 1 /* clazz */
            new org.bson.types.Decimal128
            dup
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokespecial org.bson.types.Decimal128.<init>:(J)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        21: areturn
        22: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.Double
            ifeq 25
        23: .line 63
            aload 1 /* clazz */
            new org.bson.BsonDouble
            dup
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokespecial org.bson.BsonDouble.<init>:(D)V
            invokevirtual org.bson.BsonDouble.decimal128Value:()Lorg/bson/types/Decimal128;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        24: areturn
        25: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            instanceof java.lang.String
            ifeq 28
        26: .line 65
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.bson.types.Decimal128.parse:(Ljava/lang/String;)Lorg/bson/types/Decimal128;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        27: areturn
        28: .line 69
      StackMap locals:
      StackMap stack:
            aload 1 /* clazz */
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
        29: areturn
        30: .line 70
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        31: .line 71
            new org.bson.json.JsonParseException
            dup
            ldc "Exception converting value '%s' to type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bson.json.JsonToken.value:Ljava/lang/Object;
            aastore
            dup
            iconst_1
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* e */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Class clazz
        end local 0 // org.bson.json.JsonToken this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   32     0   this  Lorg/bson/json/JsonToken;
            0   32     1  clazz  Ljava/lang/Class<TT;>;
           31   32     2      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3      30  Class java.lang.Exception
           4     6      30  Class java.lang.Exception
           7    10      30  Class java.lang.Exception
          11    14      30  Class java.lang.Exception
          15    18      30  Class java.lang.Exception
          19    21      30  Class java.lang.Exception
          22    24      30  Class java.lang.Exception
          25    27      30  Class java.lang.Exception
          28    29      30  Class java.lang.Exception
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      clazz  final

  public org.bson.json.JsonTokenType getType();
    descriptor: ()Lorg/bson/json/JsonTokenType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonToken this
         0: .line 76
            aload 0 /* this */
            getfield org.bson.json.JsonToken.type:Lorg/bson/json/JsonTokenType;
            areturn
        end local 0 // org.bson.json.JsonToken this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonToken;
}
SourceFile: "JsonToken.java"