final class jakarta.el.BeanELResolver$BeanProperty
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jakarta.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 // jakarta.el.BeanELResolver$BeanProperty this
        start local 1 // java.lang.Class owner
        start local 2 // java.beans.PropertyDescriptor descriptor
         0: .line 276
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 277
            aload 0 /* this */
            aload 1 /* owner */
            putfield jakarta.el.BeanELResolver$BeanProperty.owner:Ljava/lang/Class;
         2: .line 278
            aload 0 /* this */
            aload 2 /* descriptor */
            putfield jakarta.el.BeanELResolver$BeanProperty.descriptor:Ljava/beans/PropertyDescriptor;
         3: .line 279
            aload 0 /* this */
            aload 2 /* descriptor */
            invokevirtual java.beans.PropertyDescriptor.getPropertyType:()Ljava/lang/Class;
            putfield jakarta.el.BeanELResolver$BeanProperty.type:Ljava/lang/Class;
         4: .line 280
            return
        end local 2 // java.beans.PropertyDescriptor descriptor
        end local 1 // java.lang.Class owner
        end local 0 // jakarta.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljakarta/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 // jakarta.el.BeanELResolver$BeanProperty this
         0: .line 283
            aload 0 /* this */
            getfield jakarta.el.BeanELResolver$BeanProperty.type:Ljava/lang/Class;
            areturn
        end local 0 // jakarta.el.BeanELResolver$BeanProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljakarta/el/BeanELResolver$BeanProperty;
    Signature: ()Ljava/lang/Class<*>;

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

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

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