public class org.hibernate.property.access.spi.GetterFieldImpl implements org.hibernate.property.access.spi.Getter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.property.access.spi.GetterFieldImpl
  super_class: java.lang.Object
{
  private final java.lang.Class containerClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String propertyName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Field field;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.reflect.Method getterMethod;
    descriptor: Ljava/lang/reflect/Method;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.Class, java.lang.String, java.lang.reflect.Field);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/reflect/Field;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
        start local 1 // java.lang.Class containerClass
        start local 2 // java.lang.String propertyName
        start local 3 // java.lang.reflect.Field field
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            aload 0 /* this */
            aload 1 /* containerClass */
            putfield org.hibernate.property.access.spi.GetterFieldImpl.containerClass:Ljava/lang/Class;
         2: .line 34
            aload 0 /* this */
            aload 2 /* propertyName */
            putfield org.hibernate.property.access.spi.GetterFieldImpl.propertyName:Ljava/lang/String;
         3: .line 35
            aload 0 /* this */
            aload 3 /* field */
            putfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
         4: .line 37
            aload 0 /* this */
            aload 3 /* field */
            aload 2 /* propertyName */
            invokestatic org.hibernate.internal.util.ReflectHelper.findGetterMethodForFieldAccess:(Ljava/lang/reflect/Field;Ljava/lang/String;)Ljava/lang/reflect/Method;
            putfield org.hibernate.property.access.spi.GetterFieldImpl.getterMethod:Ljava/lang/reflect/Method;
         5: .line 38
            return
        end local 3 // java.lang.reflect.Field field
        end local 2 // java.lang.String propertyName
        end local 1 // java.lang.Class containerClass
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/hibernate/property/access/spi/GetterFieldImpl;
            0    6     1  containerClass  Ljava/lang/Class;
            0    6     2    propertyName  Ljava/lang/String;
            0    6     3           field  Ljava/lang/reflect/Field;
    MethodParameters:
                Name  Flags
      containerClass  
      propertyName    
      field           

  public java.lang.Object get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
        start local 1 // java.lang.Object owner
         0: .line 50
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            astore 2 /* type */
        start local 2 // java.lang.Class type
         1: .line 51
            aload 2 /* type */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 20
         2: .line 52
            aload 2 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 5
         3: .line 53
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getBoolean:(Ljava/lang/Object;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
         4: areturn
         5: .line 55
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* type */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 8
         6: .line 56
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getByte:(Ljava/lang/Object;)B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
         7: areturn
         8: .line 58
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 11
         9: .line 59
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getChar:(Ljava/lang/Object;)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
        10: areturn
        11: .line 61
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 14
        12: .line 62
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getInt:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        13: areturn
        14: .line 64
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 17
        15: .line 65
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getLong:(Ljava/lang/Object;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
        16: areturn
        17: .line 67
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 20
        18: .line 68
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.getShort:(Ljava/lang/Object;)S
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
        19: areturn
        20: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            aload 1 /* owner */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
        21: areturn
        end local 2 // java.lang.Class type
        22: .line 73
      StackMap locals: org.hibernate.property.access.spi.GetterFieldImpl java.lang.Object
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        23: .line 74
            new org.hibernate.property.access.spi.PropertyAccessException
            dup
        24: .line 76
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
        25: .line 77
            ldc "Error accessing field [%s] by reflection for persistent property [%s#%s] : %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        26: .line 78
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.toGenericString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        27: .line 79
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.containerClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
        28: .line 80
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.propertyName:Ljava/lang/String;
            aastore
            dup
            iconst_3
        29: .line 81
            aload 1 /* owner */
            aastore
        30: .line 75
            invokestatic java.lang.String.format:(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        31: .line 83
            aload 2 /* e */
        32: .line 74
            invokespecial org.hibernate.property.access.spi.PropertyAccessException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.lang.Object owner
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   33     0   this  Lorg/hibernate/property/access/spi/GetterFieldImpl;
            0   33     1  owner  Ljava/lang/Object;
            1   22     2   type  Ljava/lang/Class<*>;
           23   33     2      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     4      22  Class java.lang.Exception
           5     7      22  Class java.lang.Exception
           8    10      22  Class java.lang.Exception
          11    13      22  Class java.lang.Exception
          14    16      22  Class java.lang.Exception
          17    19      22  Class java.lang.Exception
          20    21      22  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      owner  

  public java.lang.Object getForInsert(java.lang.Object, java.util.Map, org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Ljava/lang/Object;Ljava/util/Map;Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
        start local 1 // java.lang.Object owner
        start local 2 // java.util.Map mergeMap
        start local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 90
            aload 0 /* this */
            aload 1 /* owner */
            invokevirtual org.hibernate.property.access.spi.GetterFieldImpl.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 2 // java.util.Map mergeMap
        end local 1 // java.lang.Object owner
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/hibernate/property/access/spi/GetterFieldImpl;
            0    1     1     owner  Ljava/lang/Object;
            0    1     2  mergeMap  Ljava/util/Map;
            0    1     3   session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
          Name  Flags
      owner     
      mergeMap  
      session   

  public java.lang.Class getReturnType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
         0: .line 95
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            areturn
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/property/access/spi/GetterFieldImpl;

  public java.lang.reflect.Member getMember();
    descriptor: ()Ljava/lang/reflect/Member;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
         0: .line 100
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            areturn
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/property/access/spi/GetterFieldImpl;

  public java.lang.String getMethodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
         0: .line 105
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.getterMethod:Ljava/lang/reflect/Method;
            ifnull 1
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.getterMethod:Ljava/lang/reflect/Method;
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/property/access/spi/GetterFieldImpl;

  public java.lang.reflect.Method getMethod();
    descriptor: ()Ljava/lang/reflect/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
         0: .line 110
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.getterMethod:Ljava/lang/reflect/Method;
            areturn
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/property/access/spi/GetterFieldImpl;

  private java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
         0: .line 114
            new org.hibernate.property.access.spi.GetterFieldImpl$SerialForm
            dup
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.containerClass:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.propertyName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.property.access.spi.GetterFieldImpl.field:Ljava/lang/reflect/Field;
            invokespecial org.hibernate.property.access.spi.GetterFieldImpl$SerialForm.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/reflect/Field;)V
            areturn
        end local 0 // org.hibernate.property.access.spi.GetterFieldImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/property/access/spi/GetterFieldImpl;
    Exceptions:
      throws java.io.ObjectStreamException
}
SourceFile: "GetterFieldImpl.java"
NestMembers:
  org.hibernate.property.access.spi.GetterFieldImpl$SerialForm
InnerClasses:
  private SerialForm = org.hibernate.property.access.spi.GetterFieldImpl$SerialForm of org.hibernate.property.access.spi.GetterFieldImpl