public class net.minidev.asm.Accessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.minidev.asm.Accessor
  super_class: java.lang.Object
{
  protected java.lang.reflect.Field field;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.reflect.Method setter;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.reflect.Method getter;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0004) ACC_PROTECTED

  protected int index;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Class<?> type;
    descriptor: Ljava/lang/Class;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/lang/Class<*>;

  protected java.lang.reflect.Type genericType;
    descriptor: Ljava/lang/reflect/Type;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String fieldName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  public int getIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 67
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.index:I
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/minidev/asm/Accessor;

  public boolean isPublic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 75
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/minidev/asm/Accessor;

  public boolean isEnum();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 83
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.type:Ljava/lang/Class;
            invokevirtual java.lang.Class.isEnum:()Z
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/minidev/asm/Accessor;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 91
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.fieldName:Ljava/lang/String;
            areturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/minidev/asm/Accessor;

  public java.lang.Class<?> getType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 99
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.type:Ljava/lang/Class;
            areturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/minidev/asm/Accessor;
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.reflect.Type getGenericType();
    descriptor: ()Ljava/lang/reflect/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 107
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.genericType:Ljava/lang/reflect/Type;
            areturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/minidev/asm/Accessor;

  public boolean isUsable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 114
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
            ifnonnull 1
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 1
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/minidev/asm/Accessor;

  public boolean isReadable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 121
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
            ifnonnull 1
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/minidev/asm/Accessor;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.minidev.asm.Accessor this
         0: .line 128
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
            ifnonnull 1
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lnet/minidev/asm/Accessor;

  public void <init>(java.lang.Class<?>, java.lang.reflect.Field, net.minidev.asm.FieldFilter);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Field;Lnet/minidev/asm/FieldFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // net.minidev.asm.Accessor this
        start local 1 // java.lang.Class c
        start local 2 // java.lang.reflect.Field field
        start local 3 // net.minidev.asm.FieldFilter filter
         0: .line 139
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 140
            aload 0 /* this */
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            putfield net.minidev.asm.Accessor.fieldName:Ljava/lang/String;
         2: .line 141
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            istore 4 /* m */
        start local 4 // int m
         3: .line 143
            iload 4 /* m */
            sipush 136
            iand
            ifle 5
         4: .line 144
            return
         5: .line 146
      StackMap locals: net.minidev.asm.Accessor java.lang.Class java.lang.reflect.Field net.minidev.asm.FieldFilter int
      StackMap stack:
            iload 4 /* m */
            iconst_1
            iand
            ifle 7
         6: .line 147
            aload 0 /* this */
            aload 2 /* field */
            putfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
         7: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokestatic net.minidev.asm.ASMUtil.getSetterName:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         8: .line 151
            aload 0 /* this */
            aload 1 /* c */
            aload 5 /* name */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
         9: .line 152
            goto 11
      StackMap locals: net.minidev.asm.Accessor java.lang.Class java.lang.reflect.Field net.minidev.asm.FieldFilter int java.lang.String
      StackMap stack: java.lang.Exception
        10: pop
        11: .line 154
      StackMap locals:
      StackMap stack:
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 6 /* isBool */
        start local 6 // boolean isBool
        12: .line 155
            iload 6 /* isBool */
            ifeq 15
        13: .line 156
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokestatic net.minidev.asm.ASMUtil.getIsName:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* name */
        14: .line 157
            goto 16
        15: .line 158
      StackMap locals: int
      StackMap stack:
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokestatic net.minidev.asm.ASMUtil.getGetterName:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* name */
        16: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* c */
            aload 5 /* name */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
        17: .line 162
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 23
            iload 6 /* isBool */
            ifeq 23
        20: .line 166
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            invokestatic net.minidev.asm.ASMUtil.getGetterName:(Ljava/lang/String;)Ljava/lang/String;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            putfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
        21: .line 167
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Exception
        22: pop
        23: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
            ifnonnull 25
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 25
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            ifnonnull 25
        24: .line 172
            return
        25: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnull 27
            aload 3 /* filter */
            aload 2 /* field */
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            invokeinterface net.minidev.asm.FieldFilter.canUse:(Ljava/lang/reflect/Field;Ljava/lang/reflect/Method;)Z
            ifne 27
        26: .line 175
            aload 0 /* this */
            aconst_null
            putfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
        27: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            ifnull 29
            aload 3 /* filter */
            aload 2 /* field */
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            invokeinterface net.minidev.asm.FieldFilter.canUse:(Ljava/lang/reflect/Field;Ljava/lang/reflect/Method;)Z
            ifne 29
        28: .line 178
            aload 0 /* this */
            aconst_null
            putfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
        29: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.getter:Ljava/lang/reflect/Method;
            ifnonnull 31
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.setter:Ljava/lang/reflect/Method;
            ifnonnull 31
            aload 0 /* this */
            getfield net.minidev.asm.Accessor.field:Ljava/lang/reflect/Field;
            ifnonnull 31
        30: .line 182
            return
        31: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            putfield net.minidev.asm.Accessor.type:Ljava/lang/Class;
        32: .line 185
            aload 0 /* this */
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getGenericType:()Ljava/lang/reflect/Type;
            putfield net.minidev.asm.Accessor.genericType:Ljava/lang/reflect/Type;
        33: .line 186
            return
        end local 6 // boolean isBool
        end local 5 // java.lang.String name
        end local 4 // int m
        end local 3 // net.minidev.asm.FieldFilter filter
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.Class c
        end local 0 // net.minidev.asm.Accessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0    this  Lnet/minidev/asm/Accessor;
            0   34     1       c  Ljava/lang/Class<*>;
            0   34     2   field  Ljava/lang/reflect/Field;
            0   34     3  filter  Lnet/minidev/asm/FieldFilter;
            3   34     4       m  I
            8   34     5    name  Ljava/lang/String;
           12   34     6  isBool  Z
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.Exception
          16    17      18  Class java.lang.Exception
          20    21      22  Class java.lang.Exception
    Signature: (Ljava/lang/Class<*>;Ljava/lang/reflect/Field;Lnet/minidev/asm/FieldFilter;)V
    MethodParameters:
        Name  Flags
      c       
      field   
      filter  
}
SourceFile: "Accessor.java"