public class com.jayway.jsonpath.spi.json.JettisonProvider extends com.jayway.jsonpath.spi.json.AbstractJsonProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.jayway.jsonpath.spi.json.JettisonProvider
  super_class: com.jayway.jsonpath.spi.json.AbstractJsonProvider
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
         0: .line 30
            aload 0 /* this */
            invokespecial com.jayway.jsonpath.spi.json.AbstractJsonProvider.<init>:()V
            return
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;

  private static java.lang.Object jettisonUnwrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 34
            aload 0 /* obj */
            ifnull 2
            aload 0 /* obj */
            getstatic org.codehaus.jettison.json.JSONObject.NULL:Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 36
            aconst_null
            areturn
         2: .line 38
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  private static java.lang.Object jettisonWrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 43
            aload 0 /* obj */
            ifnonnull 2
         1: .line 45
            getstatic org.codehaus.jettison.json.JSONObject.NULL:Ljava/lang/Object;
            areturn
         2: .line 47
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  private java.lang.Object parse(com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener);
    descriptor: (Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener JsonTokener
         0: .line 192
            aload 1 /* JsonTokener */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener.nextClean:()C
            istore 2 /* nextChar */
        start local 2 // char nextChar
         1: .line 193
            aload 1 /* JsonTokener */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener.back:()V
         2: .line 194
            iload 2 /* nextChar */
            bipush 123
            if_icmpne 5
         3: .line 196
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject
            dup
            aload 1 /* JsonTokener */
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject.<init>:(Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;)V
         4: areturn
         5: .line 198
      StackMap locals: int
      StackMap stack:
            iload 2 /* nextChar */
            bipush 91
            if_icmpne 8
         6: .line 200
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray
            dup
            aload 1 /* JsonTokener */
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray.<init>:(Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;)V
         7: areturn
         8: .line 202
      StackMap locals:
      StackMap stack:
            new org.codehaus.jettison.json.JSONException
            dup
            ldc "Invalid JSON"
            invokespecial org.codehaus.jettison.json.JSONException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // char nextChar
         9: .line 204
      StackMap locals: com.jayway.jsonpath.spi.json.JettisonProvider com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener
      StackMap stack: org.codehaus.jettison.json.JSONException
            astore 2 /* jsonException */
        start local 2 // org.codehaus.jettison.json.JSONException jsonException
        10: .line 206
            new java.lang.IllegalStateException
            dup
            aload 2 /* jsonException */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // org.codehaus.jettison.json.JSONException jsonException
        end local 1 // com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener JsonTokener
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   11     1    JsonTokener  Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;
            1    9     2       nextChar  C
           10   11     2  jsonException  Lorg/codehaus/jettison/json/JSONException;
      Exception table:
        from    to  target  type
           0     4       9  Class org.codehaus.jettison.json.JSONException
           5     7       9  Class org.codehaus.jettison.json.JSONException
           8     9       9  Class org.codehaus.jettison.json.JSONException
    MethodParameters:
             Name  Flags
      JsonTokener  

  public java.lang.Object parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.String json
         0: .line 213
            aload 0 /* this */
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener
            dup
            aload 1 /* json */
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener.<init>:(Ljava/lang/String;)V
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.parse:(Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String json
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1  json  Ljava/lang/String;
    Exceptions:
      throws com.jayway.jsonpath.InvalidJsonException
    MethodParameters:
      Name  Flags
      json  

  public java.lang.Object parse(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.io.InputStream jsonStream
        start local 2 // java.lang.String charset
         0: .line 221
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* stream */
        start local 3 // java.io.ByteArrayOutputStream stream
         1: .line 222
            sipush 1024
            newarray 8
            astore 4 /* buffer */
        start local 4 // byte[] buffer
         2: .line 224
            goto 4
        start local 5 // int size
         3: .line 226
      StackMap locals: java.io.ByteArrayOutputStream byte[] int
      StackMap stack:
            aload 3 /* stream */
            aload 4 /* buffer */
            iconst_0
            iload 5 /* size */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 5 // int size
         4: .line 224
      StackMap locals:
      StackMap stack:
            aload 1 /* jsonStream */
            aload 4 /* buffer */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 5 /* size */
        start local 5 // int size
         5: ifgt 3
         6: .line 228
            aload 0 /* this */
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener
            dup
            new java.lang.String
            dup
            aload 3 /* stream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            aload 2 /* charset */
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener.<init>:(Ljava/lang/String;)V
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.parse:(Lcom/jayway/jsonpath/spi/json/JettisonProvider$JettisonTokener;)Ljava/lang/Object;
         7: areturn
        end local 5 // int size
        end local 4 // byte[] buffer
        end local 3 // java.io.ByteArrayOutputStream stream
         8: .line 230
      StackMap locals: com.jayway.jsonpath.spi.json.JettisonProvider java.io.InputStream java.lang.String
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
         9: .line 232
            new com.jayway.jsonpath.InvalidJsonException
            dup
            aload 3 /* ioe */
            invokespecial com.jayway.jsonpath.InvalidJsonException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException ioe
        end local 2 // java.lang.String charset
        end local 1 // java.io.InputStream jsonStream
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   10     1  jsonStream  Ljava/io/InputStream;
            0   10     2     charset  Ljava/lang/String;
            1    8     3      stream  Ljava/io/ByteArrayOutputStream;
            2    8     4      buffer  [B
            3    4     5        size  I
            5    8     5        size  I
            9   10     3         ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.io.IOException
    Exceptions:
      throws com.jayway.jsonpath.InvalidJsonException
    MethodParameters:
            Name  Flags
      jsonStream  
      charset     

  public java.lang.String toJson(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 241
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ifeq 3
         1: .line 243
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            iconst_2
            invokevirtual org.codehaus.jettison.json.JSONArray.toString:(I)Ljava/lang/String;
         2: areturn
         3: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ifeq 6
         4: .line 247
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            iconst_2
            invokevirtual org.codehaus.jettison.json.JSONObject.toString:(I)Ljava/lang/String;
         5: areturn
         6: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
         7: areturn
         8: .line 252
      StackMap locals:
      StackMap stack: org.codehaus.jettison.json.JSONException
            astore 2 /* jsonException */
        start local 2 // org.codehaus.jettison.json.JSONException jsonException
         9: .line 254
            new java.lang.IllegalStateException
            dup
            aload 2 /* jsonException */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // org.codehaus.jettison.json.JSONException jsonException
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   10     1            obj  Ljava/lang/Object;
            9   10     2  jsonException  Lorg/codehaus/jettison/json/JSONException;
      Exception table:
        from    to  target  type
           0     2       8  Class org.codehaus.jettison.json.JSONException
           3     5       8  Class org.codehaus.jettison.json.JSONException
           6     7       8  Class org.codehaus.jettison.json.JSONException
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.Object createMap();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
         0: .line 261
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject
            dup
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject.<init>:()V
            areturn
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;

  public java.lang.Iterable<?> createArray();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
         0: .line 267
            new com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray
            dup
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray.<init>:()V
            areturn
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
    Signature: ()Ljava/lang/Iterable<*>;

  public java.lang.Object unwrap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 273
            aload 1 /* obj */
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonUnwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isArray(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 279
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isMap(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 285
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public int length(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 291
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ifeq 2
         1: .line 293
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            invokevirtual org.codehaus.jettison.json.JSONArray.length:()I
            ireturn
         2: .line 295
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ifeq 4
         3: .line 297
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            invokevirtual org.codehaus.jettison.json.JSONObject.length:()I
            ireturn
         4: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.String
            ifeq 6
         5: .line 301
            aload 1 /* obj */
            checkcast java.lang.String
            invokevirtual java.lang.String.length:()I
            ireturn
         6: .line 303
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    7     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.Iterable<?> toIterable();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 309
            new com.jayway.jsonpath.spi.json.JettisonProvider$1
            dup
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial com.jayway.jsonpath.spi.json.JettisonProvider$1.<init>:(Lcom/jayway/jsonpath/spi/json/JettisonProvider;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1   obj  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/lang/Iterable<*>;
    MethodParameters:
      Name  Flags
      obj   final

  public java.util.Collection<java.lang.String> getPropertyKeys();
    descriptor: (Ljava/lang/Object;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
         0: .line 330
            new java.util.ArrayList
            dup
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.length:(Ljava/lang/Object;)I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* keys */
        start local 2 // java.util.List keys
         1: .line 332
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ifeq 7
         2: .line 334
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 336
      StackMap locals: java.util.List int
      StackMap stack:
            aload 2 /* keys */
            iload 3 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 334
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.length:(Ljava/lang/Object;)I
            if_icmplt 4
        end local 3 // int i
         7: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ifeq 12
         8: .line 341
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            invokevirtual org.codehaus.jettison.json.JSONObject.keys:()Ljava/util/Iterator;
            astore 3 /* keysIt */
        start local 3 // java.util.Iterator keysIt
         9: .line 342
            goto 11
        10: .line 344
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* keys */
            aload 3 /* keysIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 342
      StackMap locals:
      StackMap stack:
            aload 3 /* keysIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 3 // java.util.Iterator keysIt
        12: .line 347
      StackMap locals:
      StackMap stack:
            aload 2 /* keys */
            areturn
        end local 2 // java.util.List keys
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   13     1     obj  Ljava/lang/Object;
            1   13     2    keys  Ljava/util/List<Ljava/lang/String;>;
            3    7     3       i  I
            9   12     3  keysIt  Ljava/util/Iterator<*>;
    Signature: (Ljava/lang/Object;)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.Object getArrayIndex(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
        start local 2 // int index
         0: .line 354
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            iload 2 /* index */
            invokevirtual org.codehaus.jettison.json.JSONArray.opt:(I)Ljava/lang/Object;
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonUnwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // int index
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    1     1    obj  Ljava/lang/Object;
            0    1     2  index  I
    MethodParameters:
       Name  Flags
      obj    
      index  

  public void setArrayIndex(java.lang.Object, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object array
        start local 2 // int index
        start local 3 // java.lang.Object value
         0: .line 359
            aload 0 /* this */
            aload 1 /* array */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.isArray:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 361
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
         2: .line 366
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast org.codehaus.jettison.json.JSONArray
            iload 2 /* index */
            aload 3 /* value */
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonWrap:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.codehaus.jettison.json.JSONArray.put:(ILjava/lang/Object;)Lorg/codehaus/jettison/json/JSONArray;
            pop
         3: .line 367
            goto 6
         4: .line 368
      StackMap locals:
      StackMap stack: org.codehaus.jettison.json.JSONException
            astore 4 /* jsonException */
        start local 4 // org.codehaus.jettison.json.JSONException jsonException
         5: .line 370
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* jsonException */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // org.codehaus.jettison.json.JSONException jsonException
         6: .line 372
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object value
        end local 2 // int index
        end local 1 // java.lang.Object array
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    7     1          array  Ljava/lang/Object;
            0    7     2          index  I
            0    7     3          value  Ljava/lang/Object;
            5    6     4  jsonException  Lorg/codehaus/jettison/json/JSONException;
      Exception table:
        from    to  target  type
           2     3       4  Class org.codehaus.jettison.json.JSONException
    MethodParameters:
       Name  Flags
      array  
      index  
      value  

  public java.lang.Object getMapValue(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.String key
         0: .line 377
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            aload 2 /* key */
            invokevirtual org.codehaus.jettison.json.JSONObject.opt:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 378
            aload 3 /* value */
            ifnonnull 3
         2: .line 380
            getstatic com.jayway.jsonpath.spi.json.JsonProvider.UNDEFINED:Ljava/lang/Object;
            areturn
         3: .line 382
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* value */
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonUnwrap:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String key
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0    4     1    obj  Ljava/lang/Object;
            0    4     2    key  Ljava/lang/String;
            1    4     3  value  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
      key   

  public void setProperty(java.lang.Object, java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object key
        start local 3 // java.lang.Object value
         0: .line 390
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ifeq 5
         1: .line 392
            aload 2 /* key */
            instanceof java.lang.Integer
            ifeq 2
            aload 2 /* key */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 2 /* key */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* index */
        start local 4 // int index
         4: .line 393
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            iload 4 /* index */
            aload 3 /* value */
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonWrap:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.codehaus.jettison.json.JSONArray.put:(ILjava/lang/Object;)Lorg/codehaus/jettison/json/JSONArray;
            pop
        end local 4 // int index
         5: .line 395
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ifeq 10
         6: .line 397
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            aload 2 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* value */
            invokestatic com.jayway.jsonpath.spi.json.JettisonProvider.jettisonWrap:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual org.codehaus.jettison.json.JSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lorg/codehaus/jettison/json/JSONObject;
            pop
         7: .line 399
            goto 10
         8: .line 400
      StackMap locals:
      StackMap stack: org.codehaus.jettison.json.JSONException
            astore 4 /* jsonException */
        start local 4 // org.codehaus.jettison.json.JSONException jsonException
         9: .line 402
            new java.lang.IllegalStateException
            dup
            aload 4 /* jsonException */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // org.codehaus.jettison.json.JSONException jsonException
        10: .line 404
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   11     1            obj  Ljava/lang/Object;
            0   11     2            key  Ljava/lang/Object;
            0   11     3          value  Ljava/lang/Object;
            4    5     4          index  I
            9   10     4  jsonException  Lorg/codehaus/jettison/json/JSONException;
      Exception table:
        from    to  target  type
           0     7       8  Class org.codehaus.jettison.json.JSONException
    MethodParameters:
       Name  Flags
      obj    
      key    
      value  

  public void removeProperty(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
        start local 1 // java.lang.Object obj
        start local 2 // java.lang.Object key
         0: .line 411
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONArray
            ifeq 8
         1: .line 413
            aload 2 /* key */
            instanceof java.lang.Integer
            ifeq 2
            aload 2 /* key */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 2 /* key */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* index */
        start local 3 // int index
         4: .line 414
            iload 3 /* index */
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.length:(Ljava/lang/Object;)I
            if_icmpge 8
         5: .line 416
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            astore 4 /* temp */
        start local 4 // java.lang.Object temp
         6: .line 417
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            iload 3 /* index */
            aload 4 /* temp */
            invokevirtual org.codehaus.jettison.json.JSONArray.put:(ILjava/lang/Object;)Lorg/codehaus/jettison/json/JSONArray;
            pop
         7: .line 418
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONArray
            aload 4 /* temp */
            invokevirtual org.codehaus.jettison.json.JSONArray.remove:(Ljava/lang/Object;)Lorg/codehaus/jettison/json/JSONArray;
            pop
        end local 4 // java.lang.Object temp
        end local 3 // int index
         8: .line 421
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.codehaus.jettison.json.JSONObject
            ifeq 13
         9: .line 423
            aload 1 /* obj */
            checkcast org.codehaus.jettison.json.JSONObject
            aload 2 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.codehaus.jettison.json.JSONObject.remove:(Ljava/lang/String;)Ljava/lang/Object;
            pop
        10: .line 425
            goto 13
        11: .line 426
      StackMap locals:
      StackMap stack: org.codehaus.jettison.json.JSONException
            astore 3 /* jsonException */
        start local 3 // org.codehaus.jettison.json.JSONException jsonException
        12: .line 428
            new java.lang.IllegalStateException
            dup
            aload 3 /* jsonException */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.codehaus.jettison.json.JSONException jsonException
        13: .line 430
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object key
        end local 1 // java.lang.Object obj
        end local 0 // com.jayway.jsonpath.spi.json.JettisonProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lcom/jayway/jsonpath/spi/json/JettisonProvider;
            0   14     1            obj  Ljava/lang/Object;
            0   14     2            key  Ljava/lang/Object;
            4    8     3          index  I
            6    8     4           temp  Ljava/lang/Object;
           12   13     3  jsonException  Lorg/codehaus/jettison/json/JSONException;
      Exception table:
        from    to  target  type
           0    10      11  Class org.codehaus.jettison.json.JSONException
    MethodParameters:
      Name  Flags
      obj   
      key   

  public java.lang.Object createArray();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.jayway.jsonpath.spi.json.JettisonProvider.createArray:()Ljava/lang/Iterable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JettisonProvider.java"
NestMembers:
  com.jayway.jsonpath.spi.json.JettisonProvider$1  com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray  com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArrayIterator  com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject  com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObjectIterator  com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener
InnerClasses:
  com.jayway.jsonpath.spi.json.JettisonProvider$1
  private JettisonArray = com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArray of com.jayway.jsonpath.spi.json.JettisonProvider
  private JettisonArrayIterator = com.jayway.jsonpath.spi.json.JettisonProvider$JettisonArrayIterator of com.jayway.jsonpath.spi.json.JettisonProvider
  private JettisonObject = com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObject of com.jayway.jsonpath.spi.json.JettisonProvider
  private JettisonObjectIterator = com.jayway.jsonpath.spi.json.JettisonProvider$JettisonObjectIterator of com.jayway.jsonpath.spi.json.JettisonProvider
  private JettisonTokener = com.jayway.jsonpath.spi.json.JettisonProvider$JettisonTokener of com.jayway.jsonpath.spi.json.JettisonProvider