final class javax.el.BeanELResolver$BeanProperty
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: javax.el.BeanELResolver$BeanProperty
  super_class: java.lang.Object
{
  private final java.lang.Class<?> type;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final java.lang.Class<?> owner;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final java.beans.PropertyDescriptor descriptor;
    descriptor: Ljava/beans/PropertyDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.reflect.Method read;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.reflect.Method write;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.Class<?>, java.beans.PropertyDescriptor);
    descriptor: (Ljava/lang/Class;Ljava/beans/PropertyDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.el.BeanELResolver$BeanProperty this
        start local 1 // java.lang.Class owner
        start local 2 // java.beans.PropertyDescriptor descriptor
         0: .line 286
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 287
            aload 0 /* this */
            aload 1 /* owner */
            putfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
         2: .line 288
            aload 0 /* this */
            aload 2 /* descriptor */
            putfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
         3: .line 289
            aload 0 /* this */
            aload 2 /* descriptor */
            invokevirtual java.beans.PropertyDescriptor.getPropertyType:()Ljava/lang/Class;
            putfield javax.el.BeanELResolver$BeanProperty.type:Ljava/lang/Class;
         4: .line 290
            return
        end local 2 // java.beans.PropertyDescriptor descriptor
        end local 1 // java.lang.Class owner
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljavax/el/BeanELResolver$BeanProperty;
            0    5     1       owner  Ljava/lang/Class<*>;
            0    5     2  descriptor  Ljava/beans/PropertyDescriptor;
    Signature: (Ljava/lang/Class<*>;Ljava/beans/PropertyDescriptor;)V
    MethodParameters:
            Name  Flags
      owner       
      descriptor  

  public java.lang.Class getPropertyType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.el.BeanELResolver$BeanProperty this
         0: .line 295
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.type:Ljava/lang/Class;
            areturn
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/el/BeanELResolver$BeanProperty;

  public boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.el.BeanELResolver$BeanProperty this
         0: .line 299
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
            ifnonnull 3
         1: .line 300
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            invokestatic javax.el.Util.getMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
            dup_x1
            putfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
            ifnonnull 3
         2: .line 299
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/el/BeanELResolver$BeanProperty;

  public java.lang.reflect.Method getWriteMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.el.BeanELResolver$BeanProperty this
         0: .line 304
            aload 0 /* this */
            aconst_null
            invokevirtual javax.el.BeanELResolver$BeanProperty.write:(Ljavax/el/ELContext;)Ljava/lang/reflect/Method;
            areturn
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/el/BeanELResolver$BeanProperty;

  public java.lang.reflect.Method getReadMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.el.BeanELResolver$BeanProperty this
         0: .line 308
            aload 0 /* this */
            aconst_null
            invokevirtual javax.el.BeanELResolver$BeanProperty.read:(Ljavax/el/ELContext;)Ljava/lang/reflect/Method;
            areturn
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/el/BeanELResolver$BeanProperty;

  private java.lang.reflect.Method write(javax.el.ELContext);
    descriptor: (Ljavax/el/ELContext;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // javax.el.BeanELResolver$BeanProperty this
        start local 1 // javax.el.ELContext ctx
         0: .line 312
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
            ifnonnull 7
         1: .line 313
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
            invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
            invokestatic javax.el.Util.getMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
            putfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
         2: .line 314
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
            ifnonnull 7
         3: .line 315
            new javax.el.PropertyNotWritableException
            dup
            aload 1 /* ctx */
         4: .line 316
            ldc "propertyNotWritable"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 317
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            aastore
         6: .line 315
            invokestatic javax.el.Util.message:(Ljavax/el/ELContext;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial javax.el.PropertyNotWritableException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.write:Ljava/lang/reflect/Method;
            areturn
        end local 1 // javax.el.ELContext ctx
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavax/el/BeanELResolver$BeanProperty;
            0    8     1   ctx  Ljavax/el/ELContext;
    MethodParameters:
      Name  Flags
      ctx   

  private java.lang.reflect.Method read(javax.el.ELContext);
    descriptor: (Ljavax/el/ELContext;)Ljava/lang/reflect/Method;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // javax.el.BeanELResolver$BeanProperty this
        start local 1 // javax.el.ELContext ctx
         0: .line 324
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.read:Ljava/lang/reflect/Method;
            ifnonnull 7
         1: .line 325
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
            invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
            invokestatic javax.el.Util.getMethod:(Ljava/lang/Class;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
            putfield javax.el.BeanELResolver$BeanProperty.read:Ljava/lang/reflect/Method;
         2: .line 326
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.read:Ljava/lang/reflect/Method;
            ifnonnull 7
         3: .line 327
            new javax.el.PropertyNotFoundException
            dup
            aload 1 /* ctx */
         4: .line 328
            ldc "propertyNotReadable"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 329
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
            invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
            aastore
         6: .line 327
            invokestatic javax.el.Util.message:(Ljavax/el/ELContext;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial javax.el.PropertyNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.el.BeanELResolver$BeanProperty.read:Ljava/lang/reflect/Method;
            areturn
        end local 1 // javax.el.ELContext ctx
        end local 0 // javax.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavax/el/BeanELResolver$BeanProperty;
            0    8     1   ctx  Ljavax/el/ELContext;
    MethodParameters:
      Name  Flags
      ctx   
}
SourceFile: "BeanELResolver.java"
NestHost: javax.el.BeanELResolver
InnerClasses:
  final BeanProperty = javax.el.BeanELResolver$BeanProperty of javax.el.BeanELResolver