public final class org.hibernate.persister.internal.PersisterFactoryImpl implements org.hibernate.persister.spi.PersisterFactory, org.hibernate.service.spi.ServiceRegistryAwareService
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.persister.internal.PersisterFactoryImpl
  super_class: java.lang.Object
{
  public static final java.lang.Class[] ENTITY_PERSISTER_CONSTRUCTOR_ARGS;
    descriptor: [Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.Class[] ENTITY_PERSISTER_CONSTRUCTOR_ARGS_NEW;
    descriptor: [Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class[] COLLECTION_PERSISTER_CONSTRUCTOR_ARGS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Class[] COLLECTION_PERSISTER_CONSTRUCTOR_ARGS_NEW;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry;
    descriptor: Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 63
            iconst_5
            anewarray java.lang.Class
            dup
            iconst_0
         1: .line 64
            ldc Lorg/hibernate/mapping/PersistentClass;
            aastore
            dup
            iconst_1
         2: .line 65
            ldc Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            aastore
            dup
            iconst_2
         3: .line 66
            ldc Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            aastore
            dup
            iconst_3
         4: .line 67
            ldc Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aastore
            dup
            iconst_4
         5: .line 68
            ldc Lorg/hibernate/engine/spi/Mapping;
            aastore
         6: .line 63
            putstatic org.hibernate.persister.internal.PersisterFactoryImpl.ENTITY_PERSISTER_CONSTRUCTOR_ARGS:[Ljava/lang/Class;
         7: .line 79
            iconst_5
            anewarray java.lang.Class
            dup
            iconst_0
         8: .line 80
            ldc Lorg/hibernate/metamodel/binding/EntityBinding;
            aastore
            dup
            iconst_1
         9: .line 81
            ldc Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            aastore
            dup
            iconst_2
        10: .line 82
            ldc Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            aastore
            dup
            iconst_3
        11: .line 83
            ldc Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aastore
            dup
            iconst_4
        12: .line 84
            ldc Lorg/hibernate/engine/spi/Mapping;
            aastore
        13: .line 79
            putstatic org.hibernate.persister.internal.PersisterFactoryImpl.ENTITY_PERSISTER_CONSTRUCTOR_ARGS_NEW:[Ljava/lang/Class;
        14: .line 93
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
        15: .line 94
            ldc Lorg/hibernate/mapping/Collection;
            aastore
            dup
            iconst_1
        16: .line 95
            ldc Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            aastore
            dup
            iconst_2
        17: .line 96
            ldc Lorg/hibernate/cfg/Configuration;
            aastore
            dup
            iconst_3
        18: .line 97
            ldc Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aastore
        19: .line 93
            putstatic org.hibernate.persister.internal.PersisterFactoryImpl.COLLECTION_PERSISTER_CONSTRUCTOR_ARGS:[Ljava/lang/Class;
        20: .line 109
            iconst_4
            anewarray java.lang.Class
            dup
            iconst_0
        21: .line 110
            ldc Lorg/hibernate/metamodel/binding/AbstractPluralAttributeBinding;
            aastore
            dup
            iconst_1
        22: .line 111
            ldc Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            aastore
            dup
            iconst_2
        23: .line 112
            ldc Lorg/hibernate/metamodel/source/MetadataImplementor;
            aastore
            dup
            iconst_3
        24: .line 113
            ldc Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aastore
        25: .line 109
            putstatic org.hibernate.persister.internal.PersisterFactoryImpl.COLLECTION_PERSISTER_CONSTRUCTOR_ARGS_NEW:[Ljava/lang/Class;
        26: .line 114
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;

  public void injectServices(org.hibernate.service.spi.ServiceRegistryImplementor);
    descriptor: (Lorg/hibernate/service/spi/ServiceRegistryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
        start local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
         0: .line 120
            aload 0 /* this */
            aload 1 /* serviceRegistry */
            putfield org.hibernate.persister.internal.PersisterFactoryImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
         1: .line 121
            return
        end local 1 // org.hibernate.service.spi.ServiceRegistryImplementor serviceRegistry
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;
            0    2     1  serviceRegistry  Lorg/hibernate/service/spi/ServiceRegistryImplementor;
    MethodParameters:
                 Name  Flags
      serviceRegistry  

  public org.hibernate.persister.entity.EntityPersister createEntityPersister(org.hibernate.mapping.PersistentClass, org.hibernate.cache.spi.access.EntityRegionAccessStrategy, org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/mapping/PersistentClass;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
        start local 1 // org.hibernate.mapping.PersistentClass metadata
        start local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        start local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 5 // org.hibernate.engine.spi.Mapping cfg
         0: .line 131
            aload 1 /* metadata */
            invokevirtual org.hibernate.mapping.PersistentClass.getEntityPersisterClass:()Ljava/lang/Class;
            astore 6 /* persisterClass */
        start local 6 // java.lang.Class persisterClass
         1: .line 132
            aload 6 /* persisterClass */
            ifnonnull 3
         2: .line 133
            aload 0 /* this */
            getfield org.hibernate.persister.internal.PersisterFactoryImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/persister/spi/PersisterClassResolver;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.persister.spi.PersisterClassResolver
            aload 1 /* metadata */
            invokeinterface org.hibernate.persister.spi.PersisterClassResolver.getEntityPersisterClass:(Lorg/hibernate/mapping/PersistentClass;)Ljava/lang/Class;
            astore 6 /* persisterClass */
         3: .line 135
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 6 /* persisterClass */
            getstatic org.hibernate.persister.internal.PersisterFactoryImpl.ENTITY_PERSISTER_CONSTRUCTOR_ARGS:[Ljava/lang/Class;
            aload 1 /* metadata */
            aload 2 /* cacheAccessStrategy */
            aload 3 /* naturalIdRegionAccessStrategy */
            aload 4 /* factory */
            aload 5 /* cfg */
            invokestatic org.hibernate.persister.internal.PersisterFactoryImpl.create:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 6 // java.lang.Class persisterClass
        end local 5 // org.hibernate.engine.spi.Mapping cfg
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        end local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        end local 1 // org.hibernate.mapping.PersistentClass metadata
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    4     0                           this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;
            0    4     1                       metadata  Lorg/hibernate/mapping/PersistentClass;
            0    4     2            cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            0    4     3  naturalIdRegionAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            0    4     4                        factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    4     5                            cfg  Lorg/hibernate/engine/spi/Mapping;
            1    4     6                 persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/entity/EntityPersister;>;
    MethodParameters:
                               Name  Flags
      metadata                       
      cacheAccessStrategy            
      naturalIdRegionAccessStrategy  
      factory                        
      cfg                            

  public org.hibernate.persister.entity.EntityPersister createEntityPersister(org.hibernate.metamodel.binding.EntityBinding, org.hibernate.cache.spi.access.EntityRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.Mapping);
    descriptor: (Lorg/hibernate/metamodel/binding/EntityBinding;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
        start local 1 // org.hibernate.metamodel.binding.EntityBinding metadata
        start local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        start local 3 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 4 // org.hibernate.engine.spi.Mapping cfg
         0: .line 144
            aload 1 /* metadata */
            invokevirtual org.hibernate.metamodel.binding.EntityBinding.getCustomEntityPersisterClass:()Ljava/lang/Class;
            astore 5 /* persisterClass */
        start local 5 // java.lang.Class persisterClass
         1: .line 145
            aload 5 /* persisterClass */
            ifnonnull 3
         2: .line 146
            aload 0 /* this */
            getfield org.hibernate.persister.internal.PersisterFactoryImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/persister/spi/PersisterClassResolver;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.persister.spi.PersisterClassResolver
            aload 1 /* metadata */
            invokeinterface org.hibernate.persister.spi.PersisterClassResolver.getEntityPersisterClass:(Lorg/hibernate/metamodel/binding/EntityBinding;)Ljava/lang/Class;
            astore 5 /* persisterClass */
         3: .line 148
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 5 /* persisterClass */
            getstatic org.hibernate.persister.internal.PersisterFactoryImpl.ENTITY_PERSISTER_CONSTRUCTOR_ARGS_NEW:[Ljava/lang/Class;
            aload 1 /* metadata */
            aload 2 /* cacheAccessStrategy */
            aconst_null
            aload 3 /* factory */
            aload 4 /* cfg */
            invokestatic org.hibernate.persister.internal.PersisterFactoryImpl.create:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 5 // java.lang.Class persisterClass
        end local 4 // org.hibernate.engine.spi.Mapping cfg
        end local 3 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 2 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        end local 1 // org.hibernate.metamodel.binding.EntityBinding metadata
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;
            0    4     1             metadata  Lorg/hibernate/metamodel/binding/EntityBinding;
            0    4     2  cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            0    4     3              factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    4     4                  cfg  Lorg/hibernate/engine/spi/Mapping;
            1    4     5       persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/entity/EntityPersister;>;
    MethodParameters:
                     Name  Flags
      metadata             
      cacheAccessStrategy  
      factory              
      cfg                  

  private static org.hibernate.persister.entity.EntityPersister create(java.lang.Class<? extends org.hibernate.persister.entity.EntityPersister>, java.lang.Class[], , org.hibernate.cache.spi.access.EntityRegionAccessStrategy, org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.spi.Mapping);
    descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=7
        start local 0 // java.lang.Class persisterClass
        start local 1 // java.lang.Class[] persisterConstructorArgs
        start local 2 // java.lang.Object metadata
        start local 3 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        start local 4 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        start local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        start local 6 // org.hibernate.engine.spi.Mapping cfg
         0: .line 161
            aload 0 /* persisterClass */
            aload 1 /* persisterConstructorArgs */
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 7 /* constructor */
        start local 7 // java.lang.reflect.Constructor constructor
         1: .line 163
            aload 7 /* constructor */
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* metadata */
            aastore
            dup
            iconst_1
            aload 3 /* cacheAccessStrategy */
            aastore
            dup
            iconst_2
            aload 4 /* naturalIdRegionAccessStrategy */
            aastore
            dup
            iconst_3
            aload 5 /* factory */
            aastore
            dup
            iconst_4
            aload 6 /* cfg */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.persister.entity.EntityPersister
         2: areturn
         3: .line 165
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.engine.spi.Mapping java.lang.reflect.Constructor
      StackMap stack: org.hibernate.MappingException
            astore 8 /* e */
        start local 8 // org.hibernate.MappingException e
         4: .line 166
            aload 8 /* e */
            athrow
        end local 8 // org.hibernate.MappingException e
         5: .line 168
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 8 /* e */
        start local 8 // java.lang.reflect.InvocationTargetException e
         6: .line 169
            aload 8 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 9 /* target */
        start local 9 // java.lang.Throwable target
         7: .line 170
            aload 9 /* target */
            instanceof org.hibernate.HibernateException
            ifeq 9
         8: .line 171
            aload 9 /* target */
            checkcast org.hibernate.HibernateException
            athrow
         9: .line 174
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate persister "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 9 /* target */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.Throwable target
        end local 8 // java.lang.reflect.InvocationTargetException e
        10: .line 177
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.engine.spi.Mapping java.lang.reflect.Constructor
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        11: .line 178
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate persister "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception e
        end local 7 // java.lang.reflect.Constructor constructor
        12: .line 181
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object org.hibernate.cache.spi.access.EntityRegionAccessStrategy org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor org.hibernate.engine.spi.Mapping
      StackMap stack: org.hibernate.MappingException
            astore 7 /* e */
        start local 7 // org.hibernate.MappingException e
        13: .line 182
            aload 7 /* e */
            athrow
        end local 7 // org.hibernate.MappingException e
        14: .line 184
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        15: .line 185
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not get constructor for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // org.hibernate.engine.spi.Mapping cfg
        end local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 4 // org.hibernate.cache.spi.access.NaturalIdRegionAccessStrategy naturalIdRegionAccessStrategy
        end local 3 // org.hibernate.cache.spi.access.EntityRegionAccessStrategy cacheAccessStrategy
        end local 2 // java.lang.Object metadata
        end local 1 // java.lang.Class[] persisterConstructorArgs
        end local 0 // java.lang.Class persisterClass
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0   16     0                 persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/entity/EntityPersister;>;
            0   16     1       persisterConstructorArgs  [Ljava/lang/Class;
            0   16     2                       metadata  Ljava/lang/Object;
            0   16     3            cacheAccessStrategy  Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;
            0   16     4  naturalIdRegionAccessStrategy  Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;
            0   16     5                        factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0   16     6                            cfg  Lorg/hibernate/engine/spi/Mapping;
            1   12     7                    constructor  Ljava/lang/reflect/Constructor<+Lorg/hibernate/persister/entity/EntityPersister;>;
            4    5     8                              e  Lorg/hibernate/MappingException;
            6   10     8                              e  Ljava/lang/reflect/InvocationTargetException;
            7   10     9                         target  Ljava/lang/Throwable;
           11   12     8                              e  Ljava/lang/Exception;
           13   14     7                              e  Lorg/hibernate/MappingException;
           15   16     7                              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class org.hibernate.MappingException
           1     2       5  Class java.lang.reflect.InvocationTargetException
           1     2      10  Class java.lang.Exception
           0     2      12  Class org.hibernate.MappingException
           3    12      12  Class org.hibernate.MappingException
           0     2      14  Class java.lang.Exception
           3    12      14  Class java.lang.Exception
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: (Ljava/lang/Class<+Lorg/hibernate/persister/entity/EntityPersister;>;[Ljava/lang/Class;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/EntityRegionAccessStrategy;Lorg/hibernate/cache/spi/access/NaturalIdRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/persister/entity/EntityPersister;
    MethodParameters:
                               Name  Flags
      persisterClass                 
      persisterConstructorArgs       
      metadata                       
      cacheAccessStrategy            
      naturalIdRegionAccessStrategy  
      factory                        
      cfg                            

  public org.hibernate.persister.collection.CollectionPersister createCollectionPersister(org.hibernate.cfg.Configuration, org.hibernate.mapping.Collection, org.hibernate.cache.spi.access.CollectionRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/cfg/Configuration;Lorg/hibernate/mapping/Collection;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
        start local 1 // org.hibernate.cfg.Configuration cfg
        start local 2 // org.hibernate.mapping.Collection collectionMetadata
        start local 3 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 196
            aload 2 /* collectionMetadata */
            invokevirtual org.hibernate.mapping.Collection.getCollectionPersisterClass:()Ljava/lang/Class;
            astore 5 /* persisterClass */
        start local 5 // java.lang.Class persisterClass
         1: .line 197
            aload 5 /* persisterClass */
            ifnonnull 3
         2: .line 198
            aload 0 /* this */
            getfield org.hibernate.persister.internal.PersisterFactoryImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/persister/spi/PersisterClassResolver;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.persister.spi.PersisterClassResolver
            aload 2 /* collectionMetadata */
            invokeinterface org.hibernate.persister.spi.PersisterClassResolver.getCollectionPersisterClass:(Lorg/hibernate/mapping/Collection;)Ljava/lang/Class;
            astore 5 /* persisterClass */
         3: .line 201
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 5 /* persisterClass */
            getstatic org.hibernate.persister.internal.PersisterFactoryImpl.COLLECTION_PERSISTER_CONSTRUCTOR_ARGS:[Ljava/lang/Class;
            aload 1 /* cfg */
            aload 2 /* collectionMetadata */
            aload 3 /* cacheAccessStrategy */
            aload 4 /* factory */
            invokestatic org.hibernate.persister.internal.PersisterFactoryImpl.create:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
            areturn
        end local 5 // java.lang.Class persisterClass
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        end local 2 // org.hibernate.mapping.Collection collectionMetadata
        end local 1 // org.hibernate.cfg.Configuration cfg
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;
            0    4     1                  cfg  Lorg/hibernate/cfg/Configuration;
            0    4     2   collectionMetadata  Lorg/hibernate/mapping/Collection;
            0    4     3  cacheAccessStrategy  Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            0    4     4              factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1    4     5       persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/collection/CollectionPersister;>;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                     Name  Flags
      cfg                  
      collectionMetadata   
      cacheAccessStrategy  
      factory              

  public org.hibernate.persister.collection.CollectionPersister createCollectionPersister(org.hibernate.metamodel.source.MetadataImplementor, org.hibernate.metamodel.binding.PluralAttributeBinding, org.hibernate.cache.spi.access.CollectionRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/metamodel/source/MetadataImplementor;Lorg/hibernate/metamodel/binding/PluralAttributeBinding;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
        start local 1 // org.hibernate.metamodel.source.MetadataImplementor metadata
        start local 2 // org.hibernate.metamodel.binding.PluralAttributeBinding collectionMetadata
        start local 3 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        start local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 211
            aload 2 /* collectionMetadata */
            invokeinterface org.hibernate.metamodel.binding.PluralAttributeBinding.getCollectionPersisterClass:()Ljava/lang/Class;
            astore 5 /* persisterClass */
        start local 5 // java.lang.Class persisterClass
         1: .line 212
            aload 5 /* persisterClass */
            ifnonnull 3
         2: .line 213
            aload 0 /* this */
            getfield org.hibernate.persister.internal.PersisterFactoryImpl.serviceRegistry:Lorg/hibernate/service/spi/ServiceRegistryImplementor;
            ldc Lorg/hibernate/persister/spi/PersisterClassResolver;
            invokeinterface org.hibernate.service.spi.ServiceRegistryImplementor.getService:(Ljava/lang/Class;)Lorg/hibernate/service/Service;
            checkcast org.hibernate.persister.spi.PersisterClassResolver
            aload 2 /* collectionMetadata */
            invokeinterface org.hibernate.persister.spi.PersisterClassResolver.getCollectionPersisterClass:(Lorg/hibernate/metamodel/binding/PluralAttributeBinding;)Ljava/lang/Class;
            astore 5 /* persisterClass */
         3: .line 216
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 5 /* persisterClass */
            getstatic org.hibernate.persister.internal.PersisterFactoryImpl.COLLECTION_PERSISTER_CONSTRUCTOR_ARGS_NEW:[Ljava/lang/Class;
            aload 1 /* metadata */
            aload 2 /* collectionMetadata */
            aload 3 /* cacheAccessStrategy */
            aload 4 /* factory */
            invokestatic org.hibernate.persister.internal.PersisterFactoryImpl.create:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
            areturn
        end local 5 // java.lang.Class persisterClass
        end local 4 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 3 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        end local 2 // org.hibernate.metamodel.binding.PluralAttributeBinding collectionMetadata
        end local 1 // org.hibernate.metamodel.source.MetadataImplementor metadata
        end local 0 // org.hibernate.persister.internal.PersisterFactoryImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lorg/hibernate/persister/internal/PersisterFactoryImpl;
            0    4     1             metadata  Lorg/hibernate/metamodel/source/MetadataImplementor;
            0    4     2   collectionMetadata  Lorg/hibernate/metamodel/binding/PluralAttributeBinding;
            0    4     3  cacheAccessStrategy  Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            0    4     4              factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1    4     5       persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/collection/CollectionPersister;>;
    Exceptions:
      throws org.hibernate.HibernateException
    MethodParameters:
                     Name  Flags
      metadata             
      collectionMetadata   
      cacheAccessStrategy  
      factory              

  private static org.hibernate.persister.collection.CollectionPersister create(java.lang.Class<? extends org.hibernate.persister.collection.CollectionPersister>, java.lang.Class[], , , org.hibernate.cache.spi.access.CollectionRegionAccessStrategy, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // java.lang.Class persisterClass
        start local 1 // java.lang.Class[] persisterConstructorArgs
        start local 2 // java.lang.Object cfg
        start local 3 // java.lang.Object collectionMetadata
        start local 4 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        start local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 229
            aload 0 /* persisterClass */
            aload 1 /* persisterConstructorArgs */
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 6 /* constructor */
        start local 6 // java.lang.reflect.Constructor constructor
         1: .line 231
            aload 6 /* constructor */
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* collectionMetadata */
            aastore
            dup
            iconst_1
            aload 4 /* cacheAccessStrategy */
            aastore
            dup
            iconst_2
            aload 2 /* cfg */
            aastore
            dup
            iconst_3
            aload 5 /* factory */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.persister.collection.CollectionPersister
         2: areturn
         3: .line 233
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object java.lang.Object org.hibernate.cache.spi.access.CollectionRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor java.lang.reflect.Constructor
      StackMap stack: org.hibernate.MappingException
            astore 7 /* e */
        start local 7 // org.hibernate.MappingException e
         4: .line 234
            aload 7 /* e */
            athrow
        end local 7 // org.hibernate.MappingException e
         5: .line 236
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 7 /* e */
        start local 7 // java.lang.reflect.InvocationTargetException e
         6: .line 237
            aload 7 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 8 /* target */
        start local 8 // java.lang.Throwable target
         7: .line 238
            aload 8 /* target */
            instanceof org.hibernate.HibernateException
            ifeq 9
         8: .line 239
            aload 8 /* target */
            checkcast org.hibernate.HibernateException
            athrow
         9: .line 242
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate collection persister "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* target */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Throwable target
        end local 7 // java.lang.reflect.InvocationTargetException e
        10: .line 245
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object java.lang.Object org.hibernate.cache.spi.access.CollectionRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor java.lang.reflect.Constructor
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        11: .line 246
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate collection persister "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // java.lang.reflect.Constructor constructor
        12: .line 249
      StackMap locals: java.lang.Class java.lang.Class[] java.lang.Object java.lang.Object org.hibernate.cache.spi.access.CollectionRegionAccessStrategy org.hibernate.engine.spi.SessionFactoryImplementor
      StackMap stack: org.hibernate.MappingException
            astore 6 /* e */
        start local 6 // org.hibernate.MappingException e
        13: .line 250
            aload 6 /* e */
            athrow
        end local 6 // org.hibernate.MappingException e
        14: .line 252
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        15: .line 253
            new org.hibernate.MappingException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not get constructor for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* persisterClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokespecial org.hibernate.MappingException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Exception e
        end local 5 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 4 // org.hibernate.cache.spi.access.CollectionRegionAccessStrategy cacheAccessStrategy
        end local 3 // java.lang.Object collectionMetadata
        end local 2 // java.lang.Object cfg
        end local 1 // java.lang.Class[] persisterConstructorArgs
        end local 0 // java.lang.Class persisterClass
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   16     0            persisterClass  Ljava/lang/Class<+Lorg/hibernate/persister/collection/CollectionPersister;>;
            0   16     1  persisterConstructorArgs  [Ljava/lang/Class;
            0   16     2                       cfg  Ljava/lang/Object;
            0   16     3        collectionMetadata  Ljava/lang/Object;
            0   16     4       cacheAccessStrategy  Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;
            0   16     5                   factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1   12     6               constructor  Ljava/lang/reflect/Constructor<+Lorg/hibernate/persister/collection/CollectionPersister;>;
            4    5     7                         e  Lorg/hibernate/MappingException;
            6   10     7                         e  Ljava/lang/reflect/InvocationTargetException;
            7   10     8                    target  Ljava/lang/Throwable;
           11   12     7                         e  Ljava/lang/Exception;
           13   14     6                         e  Lorg/hibernate/MappingException;
           15   16     6                         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class org.hibernate.MappingException
           1     2       5  Class java.lang.reflect.InvocationTargetException
           1     2      10  Class java.lang.Exception
           0     2      12  Class org.hibernate.MappingException
           3    12      12  Class org.hibernate.MappingException
           0     2      14  Class java.lang.Exception
           3    12      14  Class java.lang.Exception
    Exceptions:
      throws org.hibernate.HibernateException
    Signature: (Ljava/lang/Class<+Lorg/hibernate/persister/collection/CollectionPersister;>;[Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Object;Lorg/hibernate/cache/spi/access/CollectionRegionAccessStrategy;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/persister/collection/CollectionPersister;
    MethodParameters:
                          Name  Flags
      persisterClass            
      persisterConstructorArgs  
      cfg                       
      collectionMetadata        
      cacheAccessStrategy       
      factory                   
}
SourceFile: "PersisterFactoryImpl.java"