public final class org.hibernate.tuple.PropertyFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.tuple.PropertyFactory
  super_class: java.lang.Object
{
  private static volatile int[] $SWITCH_TABLE$org$hibernate$tuple$PropertyFactory$NonIdentifierAttributeNature;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.tuple.PropertyFactory this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            return
        end local 0 // org.hibernate.tuple.PropertyFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/tuple/PropertyFactory;

  public static org.hibernate.tuple.IdentifierProperty buildIdentifierAttribute(org.hibernate.mapping.PersistentClass, org.hibernate.id.IdentifierGenerator);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/id/IdentifierGenerator;)Lorg/hibernate/tuple/IdentifierProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // org.hibernate.mapping.PersistentClass mappedEntity
        start local 1 // org.hibernate.id.IdentifierGenerator generator
         0: .line 83
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifier:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getNullValue:()Ljava/lang/String;
            astore 2 /* mappedUnsavedValue */
        start local 2 // java.lang.String mappedUnsavedValue
         1: .line 84
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifier:()Lorg/hibernate/mapping/KeyValue;
            invokeinterface org.hibernate.mapping.KeyValue.getType:()Lorg/hibernate/type/Type;
            astore 3 /* type */
        start local 3 // org.hibernate.type.Type type
         2: .line 85
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.getIdentifierProperty:()Lorg/hibernate/mapping/Property;
            astore 4 /* property */
        start local 4 // org.hibernate.mapping.Property property
         3: .line 88
            aload 2 /* mappedUnsavedValue */
         4: .line 89
            aload 4 /* property */
            invokestatic org.hibernate.tuple.PropertyFactory.getGetter:(Lorg/hibernate/mapping/Property;)Lorg/hibernate/property/Getter;
         5: .line 90
            aload 3 /* type */
         6: .line 91
            aload 0 /* mappedEntity */
            invokestatic org.hibernate.tuple.PropertyFactory.getConstructor:(Lorg/hibernate/mapping/PersistentClass;)Ljava/lang/reflect/Constructor;
         7: .line 87
            invokestatic org.hibernate.engine.internal.UnsavedValueFactory.getUnsavedIdentifierValue:(Ljava/lang/String;Lorg/hibernate/property/Getter;Lorg/hibernate/type/Type;Ljava/lang/reflect/Constructor;)Lorg/hibernate/engine/spi/IdentifierValue;
            astore 5 /* unsavedValue */
        start local 5 // org.hibernate.engine.spi.IdentifierValue unsavedValue
         8: .line 94
            aload 4 /* property */
            ifnonnull 16
         9: .line 96
            new org.hibernate.tuple.IdentifierProperty
            dup
        10: .line 97
            aload 3 /* type */
        11: .line 98
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.hasEmbeddedIdentifier:()Z
        12: .line 99
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.hasIdentifierMapper:()Z
        13: .line 100
            aload 5 /* unsavedValue */
        14: .line 101
            aload 1 /* generator */
        15: .line 96
            invokespecial org.hibernate.tuple.IdentifierProperty.<init>:(Lorg/hibernate/type/Type;ZZLorg/hibernate/engine/spi/IdentifierValue;Lorg/hibernate/id/IdentifierGenerator;)V
            areturn
        16: .line 105
      StackMap locals: org.hibernate.mapping.PersistentClass org.hibernate.id.IdentifierGenerator java.lang.String org.hibernate.type.Type org.hibernate.mapping.Property org.hibernate.engine.spi.IdentifierValue
      StackMap stack:
            new org.hibernate.tuple.IdentifierProperty
            dup
        17: .line 106
            aload 4 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
        18: .line 107
            aload 4 /* property */
            invokevirtual org.hibernate.mapping.Property.getNodeName:()Ljava/lang/String;
        19: .line 108
            aload 3 /* type */
        20: .line 109
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.mapping.PersistentClass.hasEmbeddedIdentifier:()Z
        21: .line 110
            aload 5 /* unsavedValue */
        22: .line 111
            aload 1 /* generator */
        23: .line 105
            invokespecial org.hibernate.tuple.IdentifierProperty.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/type/Type;ZLorg/hibernate/engine/spi/IdentifierValue;Lorg/hibernate/id/IdentifierGenerator;)V
            areturn
        end local 5 // org.hibernate.engine.spi.IdentifierValue unsavedValue
        end local 4 // org.hibernate.mapping.Property property
        end local 3 // org.hibernate.type.Type type
        end local 2 // java.lang.String mappedUnsavedValue
        end local 1 // org.hibernate.id.IdentifierGenerator generator
        end local 0 // org.hibernate.mapping.PersistentClass mappedEntity
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   24     0        mappedEntity  Lorg/hibernate/mapping/PersistentClass;
            0   24     1           generator  Lorg/hibernate/id/IdentifierGenerator;
            1   24     2  mappedUnsavedValue  Ljava/lang/String;
            2   24     3                type  Lorg/hibernate/type/Type;
            3   24     4            property  Lorg/hibernate/mapping/Property;
            8   24     5        unsavedValue  Lorg/hibernate/engine/spi/IdentifierValue;
    MethodParameters:
              Name  Flags
      mappedEntity  
      generator     

  public static org.hibernate.tuple.IdentifierProperty buildIdentifierProperty(org.hibernate.metamodel.binding.EntityBinding, org.hibernate.id.IdentifierGenerator);
    descriptor: (Lorg/hibernate/metamodel/binding/EntityBinding;Lorg/hibernate/id/IdentifierGenerator;)Lorg/hibernate/tuple/IdentifierProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // org.hibernate.metamodel.binding.EntityBinding mappedEntity
        start local 1 // org.hibernate.id.IdentifierGenerator generator
         0: .line 127
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.getValueBinding:()Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            astore 2 /* property */
        start local 2 // org.hibernate.metamodel.binding.BasicAttributeBinding property
         1: .line 133
            aload 2 /* property */
            invokevirtual org.hibernate.metamodel.binding.BasicAttributeBinding.getUnsavedValue:()Ljava/lang/String;
            astore 3 /* mappedUnsavedValue */
        start local 3 // java.lang.String mappedUnsavedValue
         2: .line 134
            aload 2 /* property */
            invokevirtual org.hibernate.metamodel.binding.BasicAttributeBinding.getHibernateTypeDescriptor:()Lorg/hibernate/metamodel/binding/HibernateTypeDescriptor;
            invokevirtual org.hibernate.metamodel.binding.HibernateTypeDescriptor.getResolvedTypeMapping:()Lorg/hibernate/type/Type;
            astore 4 /* type */
        start local 4 // org.hibernate.type.Type type
         3: .line 137
            aload 3 /* mappedUnsavedValue */
         4: .line 138
            aload 2 /* property */
            invokestatic org.hibernate.tuple.PropertyFactory.getGetter:(Lorg/hibernate/metamodel/binding/AttributeBinding;)Lorg/hibernate/property/Getter;
         5: .line 139
            aload 4 /* type */
         6: .line 140
            aload 0 /* mappedEntity */
            invokestatic org.hibernate.tuple.PropertyFactory.getConstructor:(Lorg/hibernate/metamodel/binding/EntityBinding;)Ljava/lang/reflect/Constructor;
         7: .line 136
            invokestatic org.hibernate.engine.internal.UnsavedValueFactory.getUnsavedIdentifierValue:(Ljava/lang/String;Lorg/hibernate/property/Getter;Lorg/hibernate/type/Type;Ljava/lang/reflect/Constructor;)Lorg/hibernate/engine/spi/IdentifierValue;
            astore 5 /* unsavedValue */
        start local 5 // org.hibernate.engine.spi.IdentifierValue unsavedValue
         8: .line 143
            aload 2 /* property */
            ifnonnull 16
         9: .line 145
            new org.hibernate.tuple.IdentifierProperty
            dup
        10: .line 146
            aload 4 /* type */
        11: .line 147
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.isEmbedded:()Z
        12: .line 148
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.isIdentifierMapper:()Z
        13: .line 149
            aload 5 /* unsavedValue */
        14: .line 150
            aload 1 /* generator */
        15: .line 145
            invokespecial org.hibernate.tuple.IdentifierProperty.<init>:(Lorg/hibernate/type/Type;ZZLorg/hibernate/engine/spi/IdentifierValue;Lorg/hibernate/id/IdentifierGenerator;)V
            areturn
        16: .line 154
      StackMap locals: org.hibernate.metamodel.binding.EntityBinding org.hibernate.id.IdentifierGenerator org.hibernate.metamodel.binding.BasicAttributeBinding java.lang.String org.hibernate.type.Type org.hibernate.engine.spi.IdentifierValue
      StackMap stack:
            new org.hibernate.tuple.IdentifierProperty
            dup
        17: .line 155
            aload 2 /* property */
            invokevirtual org.hibernate.metamodel.binding.BasicAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/SingularAttribute;
            invokeinterface org.hibernate.metamodel.domain.SingularAttribute.getName:()Ljava/lang/String;
        18: .line 156
            aconst_null
        19: .line 157
            aload 4 /* type */
        20: .line 158
            aload 0 /* mappedEntity */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getHierarchyDetails:()Lorg/hibernate/metamodel/binding/HierarchyDetails;
            invokevirtual org.hibernate.metamodel.binding.HierarchyDetails.getEntityIdentifier:()Lorg/hibernate/metamodel/binding/EntityIdentifier;
            invokevirtual org.hibernate.metamodel.binding.EntityIdentifier.isEmbedded:()Z
        21: .line 159
            aload 5 /* unsavedValue */
        22: .line 160
            aload 1 /* generator */
        23: .line 154
            invokespecial org.hibernate.tuple.IdentifierProperty.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/type/Type;ZLorg/hibernate/engine/spi/IdentifierValue;Lorg/hibernate/id/IdentifierGenerator;)V
            areturn
        end local 5 // org.hibernate.engine.spi.IdentifierValue unsavedValue
        end local 4 // org.hibernate.type.Type type
        end local 3 // java.lang.String mappedUnsavedValue
        end local 2 // org.hibernate.metamodel.binding.BasicAttributeBinding property
        end local 1 // org.hibernate.id.IdentifierGenerator generator
        end local 0 // org.hibernate.metamodel.binding.EntityBinding mappedEntity
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   24     0        mappedEntity  Lorg/hibernate/metamodel/binding/EntityBinding;
            0   24     1           generator  Lorg/hibernate/id/IdentifierGenerator;
            1   24     2            property  Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            2   24     3  mappedUnsavedValue  Ljava/lang/String;
            3   24     4                type  Lorg/hibernate/type/Type;
            8   24     5        unsavedValue  Lorg/hibernate/engine/spi/IdentifierValue;
    MethodParameters:
              Name  Flags
      mappedEntity  
      generator     

  public static org.hibernate.tuple.entity.VersionProperty buildVersionProperty(org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionFactoryImplementor, int, org.hibernate.mapping.Property, boolean);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILorg/hibernate/mapping/Property;Z)Lorg/hibernate/tuple/entity/VersionProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=5
        start local 0 // org.hibernate.persister.entity.EntityPersister persister
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        start local 2 // int attributeNumber
        start local 3 // org.hibernate.mapping.Property property
        start local 4 // boolean lazyAvailable
         0: .line 179
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            checkcast org.hibernate.mapping.KeyValue
            invokeinterface org.hibernate.mapping.KeyValue.getNullValue:()Ljava/lang/String;
            astore 5 /* mappedUnsavedValue */
        start local 5 // java.lang.String mappedUnsavedValue
         1: .line 182
            aload 5 /* mappedUnsavedValue */
         2: .line 183
            aload 3 /* property */
            invokestatic org.hibernate.tuple.PropertyFactory.getGetter:(Lorg/hibernate/mapping/Property;)Lorg/hibernate/property/Getter;
         3: .line 184
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.VersionType
         4: .line 185
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokestatic org.hibernate.tuple.PropertyFactory.getConstructor:(Lorg/hibernate/mapping/PersistentClass;)Ljava/lang/reflect/Constructor;
         5: .line 181
            invokestatic org.hibernate.engine.internal.UnsavedValueFactory.getUnsavedVersionValue:(Ljava/lang/String;Lorg/hibernate/property/Getter;Lorg/hibernate/type/VersionType;Ljava/lang/reflect/Constructor;)Lorg/hibernate/engine/spi/VersionValue;
            astore 6 /* unsavedValue */
        start local 6 // org.hibernate.engine.spi.VersionValue unsavedValue
         6: .line 188
            iload 4 /* lazyAvailable */
            ifeq 7
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: java.lang.String org.hibernate.engine.spi.VersionValue
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 7 /* lazy */
        start local 7 // boolean lazy
         9: .line 190
            new org.hibernate.tuple.entity.VersionProperty
            dup
        10: .line 191
            aload 0 /* persister */
        11: .line 192
            aload 1 /* sessionFactory */
        12: .line 193
            iload 2 /* attributeNumber */
        13: .line 194
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
        14: .line 195
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getType:()Lorg/hibernate/type/Type;
        15: .line 196
            new org.hibernate.tuple.BaselineAttributeInformation$Builder
            dup
            invokespecial org.hibernate.tuple.BaselineAttributeInformation$Builder.<init>:()V
        16: .line 197
            iload 7 /* lazy */
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setLazy:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        17: .line 198
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isInsertable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setInsertable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        18: .line 199
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setUpdateable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        19: .line 200
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setValueGenerationStrategy:(Lorg/hibernate/tuple/ValueGeneration;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        20: .line 201
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setNullable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        21: .line 202
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            ifeq 22
            iload 7 /* lazy */
            ifne 22
            iconst_1
            goto 23
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int java.lang.String org.hibernate.engine.spi.VersionValue int
      StackMap stack: new 9 new 9 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder
        22: iconst_0
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int java.lang.String org.hibernate.engine.spi.VersionValue int
      StackMap stack: new 9 new 9 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder int
        23: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setDirtyCheckable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        24: .line 203
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptimisticLocked:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setVersionable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        25: .line 204
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setCascadeStyle:(Lorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        26: .line 205
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.createInformation:()Lorg/hibernate/tuple/BaselineAttributeInformation;
        27: .line 206
            aload 6 /* unsavedValue */
        28: .line 190
            invokespecial org.hibernate.tuple.entity.VersionProperty.<init>:(Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILjava/lang/String;Lorg/hibernate/type/Type;Lorg/hibernate/tuple/BaselineAttributeInformation;Lorg/hibernate/engine/spi/VersionValue;)V
            areturn
        end local 7 // boolean lazy
        end local 6 // org.hibernate.engine.spi.VersionValue unsavedValue
        end local 5 // java.lang.String mappedUnsavedValue
        end local 4 // boolean lazyAvailable
        end local 3 // org.hibernate.mapping.Property property
        end local 2 // int attributeNumber
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        end local 0 // org.hibernate.persister.entity.EntityPersister persister
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0           persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   29     1      sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   29     2     attributeNumber  I
            0   29     3            property  Lorg/hibernate/mapping/Property;
            0   29     4       lazyAvailable  Z
            1   29     5  mappedUnsavedValue  Ljava/lang/String;
            6   29     6        unsavedValue  Lorg/hibernate/engine/spi/VersionValue;
            9   29     7                lazy  Z
    MethodParameters:
                 Name  Flags
      persister        
      sessionFactory   
      attributeNumber  
      property         
      lazyAvailable    

  public static org.hibernate.tuple.entity.VersionProperty buildVersionProperty(org.hibernate.persister.entity.EntityPersister, org.hibernate.metamodel.binding.BasicAttributeBinding, boolean);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/metamodel/binding/BasicAttributeBinding;Z)Lorg/hibernate/tuple/entity/VersionProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.persister.entity.EntityPersister persister
        start local 1 // org.hibernate.metamodel.binding.BasicAttributeBinding property
        start local 2 // boolean lazyAvailable
         0: .line 222
            new org.hibernate.cfg.NotYetImplementedException
            dup
            invokespecial org.hibernate.cfg.NotYetImplementedException.<init>:()V
            athrow
        end local 2 // boolean lazyAvailable
        end local 1 // org.hibernate.metamodel.binding.BasicAttributeBinding property
        end local 0 // org.hibernate.persister.entity.EntityPersister persister
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0      persister  Lorg/hibernate/persister/entity/EntityPersister;
            0    1     1       property  Lorg/hibernate/metamodel/binding/BasicAttributeBinding;
            0    1     2  lazyAvailable  Z
    MethodParameters:
               Name  Flags
      persister      
      property       
      lazyAvailable  

  public static org.hibernate.tuple.NonIdentifierAttribute buildEntityBasedAttribute(org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.spi.SessionFactoryImplementor, int, org.hibernate.mapping.Property, boolean);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILorg/hibernate/mapping/Property;Z)Lorg/hibernate/tuple/NonIdentifierAttribute;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=5
        start local 0 // org.hibernate.persister.entity.EntityPersister persister
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        start local 2 // int attributeNumber
        start local 3 // org.hibernate.mapping.Property property
        start local 4 // boolean lazyAvailable
         0: .line 246
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getType:()Lorg/hibernate/type/Type;
            astore 5 /* type */
        start local 5 // org.hibernate.type.Type type
         1: .line 248
            aload 5 /* type */
            invokestatic org.hibernate.tuple.PropertyFactory.decode:(Lorg/hibernate/type/Type;)Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            astore 6 /* nature */
        start local 6 // org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature nature
         2: .line 257
            aload 5 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 5
         3: .line 258
            aload 5 /* type */
            checkcast org.hibernate.type.AssociationType
            invokeinterface org.hibernate.type.AssociationType.isAlwaysDirtyChecked:()Z
            ifeq 5
         4: .line 257
            iconst_1
            goto 6
      StackMap locals: org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* alwaysDirtyCheck */
        start local 7 // boolean alwaysDirtyCheck
         7: .line 260
            invokestatic org.hibernate.tuple.PropertyFactory.$SWITCH_TABLE$org$hibernate$tuple$PropertyFactory$NonIdentifierAttributeNature:()[I
            aload 6 /* nature */
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 8
                    2: 30
                    3: 52
                    4: 52
                    5: 52
              default: 74
          }
         8: .line 262
      StackMap locals: int
      StackMap stack:
            new org.hibernate.tuple.entity.EntityBasedBasicAttribute
            dup
         9: .line 263
            aload 0 /* persister */
        10: .line 264
            aload 1 /* sessionFactory */
        11: .line 265
            iload 2 /* attributeNumber */
        12: .line 266
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
        13: .line 267
            aload 5 /* type */
        14: .line 268
            new org.hibernate.tuple.BaselineAttributeInformation$Builder
            dup
            invokespecial org.hibernate.tuple.BaselineAttributeInformation$Builder.<init>:()V
        15: .line 269
            iload 4 /* lazyAvailable */
            ifeq 16
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 16
            iconst_1
            goto 17
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 8 new 8 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder
        16: iconst_0
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 8 new 8 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder int
        17: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setLazy:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        18: .line 270
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isInsertable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setInsertable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        19: .line 271
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setUpdateable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        20: .line 272
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setValueGenerationStrategy:(Lorg/hibernate/tuple/ValueGeneration;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        21: .line 273
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setNullable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        22: .line 274
            iload 7 /* alwaysDirtyCheck */
            ifne 23
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            ifne 23
            iconst_0
            goto 24
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 8 new 8 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder
        23: iconst_1
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 8 new 8 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.Type org.hibernate.tuple.BaselineAttributeInformation$Builder int
        24: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setDirtyCheckable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        25: .line 275
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptimisticLocked:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setVersionable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        26: .line 276
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setCascadeStyle:(Lorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        27: .line 277
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getFetchMode:()Lorg/hibernate/FetchMode;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setFetchMode:(Lorg/hibernate/FetchMode;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        28: .line 278
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.createInformation:()Lorg/hibernate/tuple/BaselineAttributeInformation;
        29: .line 262
            invokespecial org.hibernate.tuple.entity.EntityBasedBasicAttribute.<init>:(Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILjava/lang/String;Lorg/hibernate/type/Type;Lorg/hibernate/tuple/BaselineAttributeInformation;)V
            areturn
        30: .line 282
      StackMap locals:
      StackMap stack:
            new org.hibernate.tuple.entity.EntityBasedCompositionAttribute
            dup
        31: .line 283
            aload 0 /* persister */
        32: .line 284
            aload 1 /* sessionFactory */
        33: .line 285
            iload 2 /* attributeNumber */
        34: .line 286
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
        35: .line 287
            aload 5 /* type */
            checkcast org.hibernate.type.CompositeType
        36: .line 288
            new org.hibernate.tuple.BaselineAttributeInformation$Builder
            dup
            invokespecial org.hibernate.tuple.BaselineAttributeInformation$Builder.<init>:()V
        37: .line 289
            iload 4 /* lazyAvailable */
            ifeq 38
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 38
            iconst_1
            goto 39
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 30 new 30 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.CompositeType org.hibernate.tuple.BaselineAttributeInformation$Builder
        38: iconst_0
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 30 new 30 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.CompositeType org.hibernate.tuple.BaselineAttributeInformation$Builder int
        39: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setLazy:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        40: .line 290
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isInsertable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setInsertable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        41: .line 291
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setUpdateable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        42: .line 292
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setValueGenerationStrategy:(Lorg/hibernate/tuple/ValueGeneration;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        43: .line 293
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setNullable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        44: .line 294
            iload 7 /* alwaysDirtyCheck */
            ifne 45
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            ifne 45
            iconst_0
            goto 46
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 30 new 30 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.CompositeType org.hibernate.tuple.BaselineAttributeInformation$Builder
        45: iconst_1
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 30 new 30 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.CompositeType org.hibernate.tuple.BaselineAttributeInformation$Builder int
        46: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setDirtyCheckable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        47: .line 295
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptimisticLocked:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setVersionable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        48: .line 296
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setCascadeStyle:(Lorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        49: .line 297
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getFetchMode:()Lorg/hibernate/FetchMode;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setFetchMode:(Lorg/hibernate/FetchMode;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        50: .line 298
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.createInformation:()Lorg/hibernate/tuple/BaselineAttributeInformation;
        51: .line 282
            invokespecial org.hibernate.tuple.entity.EntityBasedCompositionAttribute.<init>:(Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILjava/lang/String;Lorg/hibernate/type/CompositeType;Lorg/hibernate/tuple/BaselineAttributeInformation;)V
            areturn
        52: .line 304
      StackMap locals:
      StackMap stack:
            new org.hibernate.tuple.entity.EntityBasedAssociationAttribute
            dup
        53: .line 305
            aload 0 /* persister */
        54: .line 306
            aload 1 /* sessionFactory */
        55: .line 307
            iload 2 /* attributeNumber */
        56: .line 308
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
        57: .line 309
            aload 5 /* type */
            checkcast org.hibernate.type.AssociationType
        58: .line 310
            new org.hibernate.tuple.BaselineAttributeInformation$Builder
            dup
            invokespecial org.hibernate.tuple.BaselineAttributeInformation$Builder.<init>:()V
        59: .line 311
            iload 4 /* lazyAvailable */
            ifeq 60
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 60
            iconst_1
            goto 61
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 52 new 52 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.AssociationType org.hibernate.tuple.BaselineAttributeInformation$Builder
        60: iconst_0
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 52 new 52 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.AssociationType org.hibernate.tuple.BaselineAttributeInformation$Builder int
        61: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setLazy:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        62: .line 312
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isInsertable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setInsertable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        63: .line 313
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setUpdateable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        64: .line 314
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setValueGenerationStrategy:(Lorg/hibernate/tuple/ValueGeneration;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        65: .line 315
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setNullable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        66: .line 316
            iload 7 /* alwaysDirtyCheck */
            ifne 67
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            ifne 67
            iconst_0
            goto 68
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 52 new 52 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.AssociationType org.hibernate.tuple.BaselineAttributeInformation$Builder
        67: iconst_1
      StackMap locals: org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int org.hibernate.mapping.Property int org.hibernate.type.Type org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature int
      StackMap stack: new 52 new 52 org.hibernate.persister.entity.EntityPersister org.hibernate.engine.spi.SessionFactoryImplementor int java.lang.String org.hibernate.type.AssociationType org.hibernate.tuple.BaselineAttributeInformation$Builder int
        68: invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setDirtyCheckable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        69: .line 317
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptimisticLocked:()Z
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setVersionable:(Z)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        70: .line 318
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setCascadeStyle:(Lorg/hibernate/engine/spi/CascadeStyle;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        71: .line 319
            aload 3 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getFetchMode:()Lorg/hibernate/FetchMode;
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.setFetchMode:(Lorg/hibernate/FetchMode;)Lorg/hibernate/tuple/BaselineAttributeInformation$Builder;
        72: .line 320
            invokevirtual org.hibernate.tuple.BaselineAttributeInformation$Builder.createInformation:()Lorg/hibernate/tuple/BaselineAttributeInformation;
        73: .line 304
            invokespecial org.hibernate.tuple.entity.EntityBasedAssociationAttribute.<init>:(Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/engine/spi/SessionFactoryImplementor;ILjava/lang/String;Lorg/hibernate/type/AssociationType;Lorg/hibernate/tuple/BaselineAttributeInformation;)V
            areturn
        74: .line 324
      StackMap locals:
      StackMap stack:
            new org.hibernate.HibernateException
            dup
            ldc "Internal error"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // boolean alwaysDirtyCheck
        end local 6 // org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature nature
        end local 5 // org.hibernate.type.Type type
        end local 4 // boolean lazyAvailable
        end local 3 // org.hibernate.mapping.Property property
        end local 2 // int attributeNumber
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        end local 0 // org.hibernate.persister.entity.EntityPersister persister
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   75     0         persister  Lorg/hibernate/persister/entity/EntityPersister;
            0   75     1    sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   75     2   attributeNumber  I
            0   75     3          property  Lorg/hibernate/mapping/Property;
            0   75     4     lazyAvailable  Z
            1   75     5              type  Lorg/hibernate/type/Type;
            2   75     6            nature  Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            7   75     7  alwaysDirtyCheck  Z
    MethodParameters:
                 Name  Flags
      persister        
      sessionFactory   
      attributeNumber  
      property         
      lazyAvailable    

  private static org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature decode(org.hibernate.type.Type);
    descriptor: (Lorg/hibernate/type/Type;)Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.type.Type type
         0: .line 330
            aload 0 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 8
         1: .line 331
            aload 0 /* type */
            checkcast org.hibernate.type.AssociationType
            pop
         2: .line 333
            aload 0 /* type */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 4
         3: .line 335
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ANY:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            areturn
         4: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 6
         5: .line 339
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.COLLECTION:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            goto 7
         6: .line 340
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ENTITY:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
         7: .line 338
      StackMap locals:
      StackMap stack: org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature
            areturn
         8: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 10
         9: .line 344
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.COMPOSITE:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            areturn
        10: .line 347
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.BASIC:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            areturn
        end local 0 // org.hibernate.type.Type type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  type  Lorg/hibernate/type/Type;
    MethodParameters:
      Name  Flags
      type  

  public static org.hibernate.tuple.StandardProperty buildStandardProperty(org.hibernate.mapping.Property, boolean);
    descriptor: (Lorg/hibernate/mapping/Property;Z)Lorg/hibernate/tuple/StandardProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=13, locals=4, args_size=2
        start local 0 // org.hibernate.mapping.Property property
        start local 1 // boolean lazyAvailable
         0: .line 353
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getType:()Lorg/hibernate/type/Type;
            astore 2 /* type */
        start local 2 // org.hibernate.type.Type type
         1: .line 362
            aload 2 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 4
         2: .line 363
            aload 2 /* type */
            checkcast org.hibernate.type.AssociationType
            invokeinterface org.hibernate.type.AssociationType.isAlwaysDirtyChecked:()Z
            ifeq 4
         3: .line 362
            iconst_1
            goto 5
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 3 /* alwaysDirtyCheck */
        start local 3 // boolean alwaysDirtyCheck
         6: .line 365
            new org.hibernate.tuple.StandardProperty
            dup
         7: .line 366
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
         8: .line 367
            aload 2 /* type */
         9: .line 368
            iload 1 /* lazyAvailable */
            ifeq 10
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isLazy:()Z
            ifeq 10
            iconst_1
            goto 11
      StackMap locals: org.hibernate.mapping.Property int org.hibernate.type.Type int
      StackMap stack: new 6 new 6 java.lang.String org.hibernate.type.Type
        10: iconst_0
        11: .line 369
      StackMap locals: org.hibernate.mapping.Property int org.hibernate.type.Type int
      StackMap stack: new 6 new 6 java.lang.String org.hibernate.type.Type int
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isInsertable:()Z
        12: .line 370
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
        13: .line 371
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.getValueGenerationStrategy:()Lorg/hibernate/tuple/ValueGeneration;
        14: .line 372
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptional:()Z
        15: .line 373
            iload 3 /* alwaysDirtyCheck */
            ifne 16
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isUpdateable:()Z
            ifne 16
            iconst_0
            goto 17
      StackMap locals: org.hibernate.mapping.Property int org.hibernate.type.Type int
      StackMap stack: new 6 new 6 java.lang.String org.hibernate.type.Type int int int org.hibernate.tuple.ValueGeneration int
        16: iconst_1
        17: .line 374
      StackMap locals: org.hibernate.mapping.Property int org.hibernate.type.Type int
      StackMap stack: new 6 new 6 java.lang.String org.hibernate.type.Type int int int org.hibernate.tuple.ValueGeneration int int
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.isOptimisticLocked:()Z
        18: .line 375
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
        19: .line 376
            aload 0 /* property */
            invokevirtual org.hibernate.mapping.Property.getValue:()Lorg/hibernate/mapping/Value;
            invokeinterface org.hibernate.mapping.Value.getFetchMode:()Lorg/hibernate/FetchMode;
        20: .line 365
            invokespecial org.hibernate.tuple.StandardProperty.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;ZZZLorg/hibernate/tuple/ValueGeneration;ZZZLorg/hibernate/engine/spi/CascadeStyle;Lorg/hibernate/FetchMode;)V
            areturn
        end local 3 // boolean alwaysDirtyCheck
        end local 2 // org.hibernate.type.Type type
        end local 1 // boolean lazyAvailable
        end local 0 // org.hibernate.mapping.Property property
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0          property  Lorg/hibernate/mapping/Property;
            0   21     1     lazyAvailable  Z
            1   21     2              type  Lorg/hibernate/type/Type;
            6   21     3  alwaysDirtyCheck  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      property       
      lazyAvailable  

  public static org.hibernate.tuple.StandardProperty buildStandardProperty(org.hibernate.metamodel.binding.AttributeBinding, boolean);
    descriptor: (Lorg/hibernate/metamodel/binding/AttributeBinding;Z)Lorg/hibernate/tuple/StandardProperty;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=13, locals=7, args_size=2
        start local 0 // org.hibernate.metamodel.binding.AttributeBinding property
        start local 1 // boolean lazyAvailable
         0: .line 391
            aload 0 /* property */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getHibernateTypeDescriptor:()Lorg/hibernate/metamodel/binding/HibernateTypeDescriptor;
            invokevirtual org.hibernate.metamodel.binding.HibernateTypeDescriptor.getResolvedTypeMapping:()Lorg/hibernate/type/Type;
            astore 2 /* type */
        start local 2 // org.hibernate.type.Type type
         1: .line 400
            aload 2 /* type */
            invokeinterface org.hibernate.type.Type.isAssociationType:()Z
            ifeq 2
            aload 2 /* type */
            checkcast org.hibernate.type.AssociationType
            invokeinterface org.hibernate.type.AssociationType.isAlwaysDirtyChecked:()Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* alwaysDirtyCheck */
        start local 3 // boolean alwaysDirtyCheck
         4: .line 402
            aload 0 /* property */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.isSingular:()Z
            ifeq 29
         5: .line 403
            aload 0 /* property */
            checkcast org.hibernate.metamodel.binding.SingularAttributeBinding
            astore 4 /* singularAttributeBinding */
        start local 4 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
         6: .line 404
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isAssociation:()Z
            ifeq 8
         7: .line 405
            aload 4 /* singularAttributeBinding */
            checkcast org.hibernate.metamodel.binding.AssociationAttributeBinding
            invokeinterface org.hibernate.metamodel.binding.AssociationAttributeBinding.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            goto 9
         8: .line 406
      StackMap locals: int org.hibernate.metamodel.binding.SingularAttributeBinding
      StackMap stack:
            getstatic org.hibernate.engine.spi.CascadeStyles.NONE:Lorg/hibernate/engine/spi/CascadeStyle;
         9: .line 404
      StackMap locals:
      StackMap stack: org.hibernate.engine.spi.CascadeStyle
            astore 5 /* cascadeStyle */
        start local 5 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        10: .line 407
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isAssociation:()Z
            ifeq 12
        11: .line 408
            aload 4 /* singularAttributeBinding */
            checkcast org.hibernate.metamodel.binding.AssociationAttributeBinding
            invokeinterface org.hibernate.metamodel.binding.AssociationAttributeBinding.getFetchMode:()Lorg/hibernate/FetchMode;
            goto 13
        12: .line 409
      StackMap locals: org.hibernate.engine.spi.CascadeStyle
      StackMap stack:
            getstatic org.hibernate.FetchMode.DEFAULT:Lorg/hibernate/FetchMode;
        13: .line 407
      StackMap locals:
      StackMap stack: org.hibernate.FetchMode
            astore 6 /* fetchMode */
        start local 6 // org.hibernate.FetchMode fetchMode
        14: .line 411
            new org.hibernate.tuple.StandardProperty
            dup
        15: .line 412
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.getName:()Ljava/lang/String;
        16: .line 413
            aload 2 /* type */
        17: .line 414
            iload 1 /* lazyAvailable */
            ifeq 18
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isLazy:()Z
            ifeq 18
            iconst_1
            goto 19
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.SingularAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 14 new 14 java.lang.String org.hibernate.type.Type
        18: iconst_0
        19: .line 415
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.SingularAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 14 new 14 java.lang.String org.hibernate.type.Type int
            iconst_1
        20: .line 416
            iconst_1
        21: .line 417
            aconst_null
        22: .line 418
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isNullable:()Z
        23: .line 419
            iload 3 /* alwaysDirtyCheck */
            ifne 24
            aload 4 /* singularAttributeBinding */
            invokestatic org.hibernate.tuple.PropertyFactory.areAllValuesIncludedInUpdate:(Lorg/hibernate/metamodel/binding/SingularAttributeBinding;)Z
            ifne 24
            iconst_0
            goto 25
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.SingularAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 14 new 14 java.lang.String org.hibernate.type.Type int int int null int
        24: iconst_1
        25: .line 420
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.SingularAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 14 new 14 java.lang.String org.hibernate.type.Type int int int null int int
            aload 4 /* singularAttributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.isIncludedInOptimisticLocking:()Z
        26: .line 421
            aload 5 /* cascadeStyle */
        27: .line 422
            aload 6 /* fetchMode */
        28: .line 411
            invokespecial org.hibernate.tuple.StandardProperty.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;ZZZLorg/hibernate/tuple/ValueGeneration;ZZZLorg/hibernate/engine/spi/CascadeStyle;Lorg/hibernate/FetchMode;)V
            areturn
        end local 6 // org.hibernate.FetchMode fetchMode
        end local 5 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        end local 4 // org.hibernate.metamodel.binding.SingularAttributeBinding singularAttributeBinding
        29: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* property */
            checkcast org.hibernate.metamodel.binding.AbstractPluralAttributeBinding
            astore 4 /* pluralAttributeBinding */
        start local 4 // org.hibernate.metamodel.binding.AbstractPluralAttributeBinding pluralAttributeBinding
        30: .line 427
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.isAssociation:()Z
            ifeq 32
        31: .line 428
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.getCascadeStyle:()Lorg/hibernate/engine/spi/CascadeStyle;
            goto 33
        32: .line 429
      StackMap locals: org.hibernate.metamodel.binding.AbstractPluralAttributeBinding
      StackMap stack:
            getstatic org.hibernate.engine.spi.CascadeStyles.NONE:Lorg/hibernate/engine/spi/CascadeStyle;
        33: .line 427
      StackMap locals:
      StackMap stack: org.hibernate.engine.spi.CascadeStyle
            astore 5 /* cascadeStyle */
        start local 5 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        34: .line 430
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.isAssociation:()Z
            ifeq 36
        35: .line 431
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.getFetchMode:()Lorg/hibernate/FetchMode;
            goto 37
        36: .line 432
      StackMap locals: org.hibernate.engine.spi.CascadeStyle
      StackMap stack:
            getstatic org.hibernate.FetchMode.DEFAULT:Lorg/hibernate/FetchMode;
        37: .line 430
      StackMap locals:
      StackMap stack: org.hibernate.FetchMode
            astore 6 /* fetchMode */
        start local 6 // org.hibernate.FetchMode fetchMode
        38: .line 434
            new org.hibernate.tuple.StandardProperty
            dup
        39: .line 435
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/PluralAttribute;
            invokeinterface org.hibernate.metamodel.domain.PluralAttribute.getName:()Ljava/lang/String;
        40: .line 436
            aload 2 /* type */
        41: .line 437
            iload 1 /* lazyAvailable */
            ifeq 42
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.isLazy:()Z
            ifeq 42
            iconst_1
            goto 43
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.AbstractPluralAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 38 new 38 java.lang.String org.hibernate.type.Type
        42: iconst_0
        43: .line 439
      StackMap locals: org.hibernate.metamodel.binding.AttributeBinding int org.hibernate.type.Type int org.hibernate.metamodel.binding.AbstractPluralAttributeBinding org.hibernate.engine.spi.CascadeStyle org.hibernate.FetchMode
      StackMap stack: new 38 new 38 java.lang.String org.hibernate.type.Type int
            iconst_1
        44: .line 440
            iconst_1
        45: .line 441
            aconst_null
        46: .line 442
            iconst_0
        47: .line 445
            iconst_1
        48: .line 446
            aload 4 /* pluralAttributeBinding */
            invokevirtual org.hibernate.metamodel.binding.AbstractPluralAttributeBinding.isIncludedInOptimisticLocking:()Z
        49: .line 447
            aload 5 /* cascadeStyle */
        50: .line 448
            aload 6 /* fetchMode */
        51: .line 434
            invokespecial org.hibernate.tuple.StandardProperty.<init>:(Ljava/lang/String;Lorg/hibernate/type/Type;ZZZLorg/hibernate/tuple/ValueGeneration;ZZZLorg/hibernate/engine/spi/CascadeStyle;Lorg/hibernate/FetchMode;)V
            areturn
        end local 6 // org.hibernate.FetchMode fetchMode
        end local 5 // org.hibernate.engine.spi.CascadeStyle cascadeStyle
        end local 4 // org.hibernate.metamodel.binding.AbstractPluralAttributeBinding pluralAttributeBinding
        end local 3 // boolean alwaysDirtyCheck
        end local 2 // org.hibernate.type.Type type
        end local 1 // boolean lazyAvailable
        end local 0 // org.hibernate.metamodel.binding.AttributeBinding property
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   52     0                  property  Lorg/hibernate/metamodel/binding/AttributeBinding;
            0   52     1             lazyAvailable  Z
            1   52     2                      type  Lorg/hibernate/type/Type;
            4   52     3          alwaysDirtyCheck  Z
            6   29     4  singularAttributeBinding  Lorg/hibernate/metamodel/binding/SingularAttributeBinding;
           10   29     5              cascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
           14   29     6                 fetchMode  Lorg/hibernate/FetchMode;
           30   52     4    pluralAttributeBinding  Lorg/hibernate/metamodel/binding/AbstractPluralAttributeBinding;
           34   52     5              cascadeStyle  Lorg/hibernate/engine/spi/CascadeStyle;
           38   52     6                 fetchMode  Lorg/hibernate/FetchMode;
    MethodParameters:
               Name  Flags
      property       
      lazyAvailable  

  private static boolean areAllValuesIncludedInUpdate(org.hibernate.metamodel.binding.SingularAttributeBinding);
    descriptor: (Lorg/hibernate/metamodel/binding/SingularAttributeBinding;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.hibernate.metamodel.binding.SingularAttributeBinding attributeBinding
         0: .line 454
            aload 0 /* attributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.hasDerivedValue:()Z
            ifeq 2
         1: .line 455
            iconst_0
            ireturn
         2: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* attributeBinding */
            invokeinterface org.hibernate.metamodel.binding.SingularAttributeBinding.getSimpleValueBindings:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.hibernate.metamodel.binding.SingularAttributeBinding top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.metamodel.binding.SimpleValueBinding
            astore 1 /* valueBinding */
        start local 1 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
         4: .line 458
            aload 1 /* valueBinding */
            invokevirtual org.hibernate.metamodel.binding.SimpleValueBinding.isIncludeInUpdate:()Z
            ifne 6
         5: .line 459
            iconst_0
            ireturn
        end local 1 // org.hibernate.metamodel.binding.SimpleValueBinding valueBinding
         6: .line 457
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 462
            iconst_1
            ireturn
        end local 0 // org.hibernate.metamodel.binding.SingularAttributeBinding attributeBinding
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0  attributeBinding  Lorg/hibernate/metamodel/binding/SingularAttributeBinding;
            4    6     1      valueBinding  Lorg/hibernate/metamodel/binding/SimpleValueBinding;
    MethodParameters:
                  Name  Flags
      attributeBinding  

  private static java.lang.reflect.Constructor getConstructor(org.hibernate.mapping.PersistentClass);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;)Ljava/lang/reflect/Constructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.mapping.PersistentClass persistentClass
         0: .line 466
            aload 0 /* persistentClass */
            ifnull 1
            aload 0 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.hasPojoRepresentation:()Z
            ifne 2
         1: .line 467
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* persistentClass */
            invokevirtual org.hibernate.mapping.PersistentClass.getMappedClass:()Ljava/lang/Class;
            invokestatic org.hibernate.internal.util.ReflectHelper.getDefaultConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
         3: areturn
         4: .line 473
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         5: .line 474
            aconst_null
            areturn
        end local 0 // org.hibernate.mapping.PersistentClass persistentClass
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0  persistentClass  Lorg/hibernate/mapping/PersistentClass;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    MethodParameters:
                 Name  Flags
      persistentClass  

  private static java.lang.reflect.Constructor getConstructor(org.hibernate.metamodel.binding.EntityBinding);
    descriptor: (Lorg/hibernate/metamodel/binding/EntityBinding;)Ljava/lang/reflect/Constructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.metamodel.binding.EntityBinding entityBinding
         0: .line 479
            aload 0 /* entityBinding */
            ifnull 1
            aload 0 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getEntity:()Lorg/hibernate/metamodel/domain/Entity;
            ifnonnull 2
         1: .line 480
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* entityBinding */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getEntity:()Lorg/hibernate/metamodel/domain/Entity;
            invokevirtual org.hibernate.metamodel.domain.Entity.getClassReference:()Ljava/lang/Class;
            invokestatic org.hibernate.internal.util.ReflectHelper.getDefaultConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
         3: areturn
         4: .line 486
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         5: .line 487
            aconst_null
            areturn
        end local 0 // org.hibernate.metamodel.binding.EntityBinding entityBinding
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0  entityBinding  Lorg/hibernate/metamodel/binding/EntityBinding;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      entityBinding  

  private static org.hibernate.property.Getter getGetter(org.hibernate.mapping.Property);
    descriptor: (Lorg/hibernate/mapping/Property;)Lorg/hibernate/property/Getter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.mapping.Property mappingProperty
         0: .line 492
            aload 0 /* mappingProperty */
            ifnull 1
            aload 0 /* mappingProperty */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokevirtual org.hibernate.mapping.PersistentClass.hasPojoRepresentation:()Z
            ifne 2
         1: .line 493
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* mappingProperty */
            getstatic org.hibernate.EntityMode.POJO:Lorg/hibernate/EntityMode;
            invokestatic org.hibernate.property.PropertyAccessorFactory.getPropertyAccessor:(Lorg/hibernate/mapping/Property;Lorg/hibernate/EntityMode;)Lorg/hibernate/property/PropertyAccessor;
            astore 1 /* pa */
        start local 1 // org.hibernate.property.PropertyAccessor pa
         3: .line 497
            aload 1 /* pa */
            aload 0 /* mappingProperty */
            invokevirtual org.hibernate.mapping.Property.getPersistentClass:()Lorg/hibernate/mapping/PersistentClass;
            invokevirtual org.hibernate.mapping.PersistentClass.getMappedClass:()Ljava/lang/Class;
            aload 0 /* mappingProperty */
            invokevirtual org.hibernate.mapping.Property.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.property.PropertyAccessor.getGetter:(Ljava/lang/Class;Ljava/lang/String;)Lorg/hibernate/property/Getter;
            areturn
        end local 1 // org.hibernate.property.PropertyAccessor pa
        end local 0 // org.hibernate.mapping.Property mappingProperty
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0  mappingProperty  Lorg/hibernate/mapping/Property;
            3    4     1               pa  Lorg/hibernate/property/PropertyAccessor;
    MethodParameters:
                 Name  Flags
      mappingProperty  

  private static org.hibernate.property.Getter getGetter(org.hibernate.metamodel.binding.AttributeBinding);
    descriptor: (Lorg/hibernate/metamodel/binding/AttributeBinding;)Lorg/hibernate/property/Getter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.hibernate.metamodel.binding.AttributeBinding mappingProperty
         0: .line 501
            aload 0 /* mappingProperty */
            ifnull 1
            aload 0 /* mappingProperty */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getContainer:()Lorg/hibernate/metamodel/binding/AttributeBindingContainer;
            invokeinterface org.hibernate.metamodel.binding.AttributeBindingContainer.getClassReference:()Ljava/lang/Class;
            ifnonnull 2
         1: .line 502
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* mappingProperty */
            getstatic org.hibernate.EntityMode.POJO:Lorg/hibernate/EntityMode;
            invokestatic org.hibernate.property.PropertyAccessorFactory.getPropertyAccessor:(Lorg/hibernate/metamodel/binding/AttributeBinding;Lorg/hibernate/EntityMode;)Lorg/hibernate/property/PropertyAccessor;
            astore 1 /* pa */
        start local 1 // org.hibernate.property.PropertyAccessor pa
         3: .line 506
            aload 1 /* pa */
         4: .line 507
            aload 0 /* mappingProperty */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getContainer:()Lorg/hibernate/metamodel/binding/AttributeBindingContainer;
            invokeinterface org.hibernate.metamodel.binding.AttributeBindingContainer.getClassReference:()Ljava/lang/Class;
         5: .line 508
            aload 0 /* mappingProperty */
            invokeinterface org.hibernate.metamodel.binding.AttributeBinding.getAttribute:()Lorg/hibernate/metamodel/domain/Attribute;
            invokeinterface org.hibernate.metamodel.domain.Attribute.getName:()Ljava/lang/String;
         6: .line 506
            invokeinterface org.hibernate.property.PropertyAccessor.getGetter:(Ljava/lang/Class;Ljava/lang/String;)Lorg/hibernate/property/Getter;
            areturn
        end local 1 // org.hibernate.property.PropertyAccessor pa
        end local 0 // org.hibernate.metamodel.binding.AttributeBinding mappingProperty
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0  mappingProperty  Lorg/hibernate/metamodel/binding/AttributeBinding;
            3    7     1               pa  Lorg/hibernate/property/PropertyAccessor;
    MethodParameters:
                 Name  Flags
      mappingProperty  

  static int[] $SWITCH_TABLE$org$hibernate$tuple$PropertyFactory$NonIdentifierAttributeNature();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 69
            getstatic org.hibernate.tuple.PropertyFactory.$SWITCH_TABLE$org$hibernate$tuple$PropertyFactory$NonIdentifierAttributeNature:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.values:()[Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ANY:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.BASIC:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.COLLECTION:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.COMPOSITE:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ENTITY:Lorg/hibernate/tuple/PropertyFactory$NonIdentifierAttributeNature;
            invokevirtual org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.hibernate.tuple.PropertyFactory.$SWITCH_TABLE$org$hibernate$tuple$PropertyFactory$NonIdentifierAttributeNature:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "PropertyFactory.java"
NestMembers:
  org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature
InnerClasses:
  public Builder = org.hibernate.tuple.BaselineAttributeInformation$Builder of org.hibernate.tuple.BaselineAttributeInformation
  public final NonIdentifierAttributeNature = org.hibernate.tuple.PropertyFactory$NonIdentifierAttributeNature of org.hibernate.tuple.PropertyFactory