public class org.hibernate.jpa.internal.metamodel.Helper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.jpa.internal.metamodel.Helper
  super_class: java.lang.Object
{
  private static final org.jboss.logging.Logger log;
    descriptor: Lorg/jboss/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            ldc Lorg/hibernate/jpa/internal/metamodel/Helper;
            invokestatic org.jboss.logging.Logger.getLogger:(Ljava/lang/Class;)Lorg/jboss/logging/Logger;
            putstatic org.hibernate.jpa.internal.metamodel.Helper.log:Lorg/jboss/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.jpa.internal.metamodel.Helper this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* sessionFactory */
            putfield org.hibernate.jpa.internal.metamodel.Helper.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         2: .line 47
            return
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        end local 0 // org.hibernate.jpa.internal.metamodel.Helper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/hibernate/jpa/internal/metamodel/Helper;
            0    3     1  sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
                Name  Flags
      sessionFactory  

  public org.hibernate.jpa.internal.metamodel.Helper$AttributeSource resolveAttributeSource(javax.persistence.metamodel.ManagedType);
    descriptor: (Ljavax/persistence/metamodel/ManagedType;)Lorg/hibernate/jpa/internal/metamodel/Helper$AttributeSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.jpa.internal.metamodel.Helper this
        start local 1 // javax.persistence.metamodel.ManagedType managedType
         0: .line 54
            aload 0 /* this */
            getfield org.hibernate.jpa.internal.metamodel.Helper.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* managedType */
            invokestatic org.hibernate.jpa.internal.metamodel.Helper.resolveAttributeSource:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljavax/persistence/metamodel/ManagedType;)Lorg/hibernate/jpa/internal/metamodel/Helper$AttributeSource;
            areturn
        end local 1 // javax.persistence.metamodel.ManagedType managedType
        end local 0 // org.hibernate.jpa.internal.metamodel.Helper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/hibernate/jpa/internal/metamodel/Helper;
            0    1     1  managedType  Ljavax/persistence/metamodel/ManagedType;
    MethodParameters:
             Name  Flags
      managedType  

  public static org.hibernate.jpa.internal.metamodel.Helper$AttributeSource resolveAttributeSource(org.hibernate.engine.spi.SessionFactoryImplementor, javax.persistence.metamodel.ManagedType);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljavax/persistence/metamodel/ManagedType;)Lorg/hibernate/jpa/internal/metamodel/Helper$AttributeSource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        start local 1 // javax.persistence.metamodel.ManagedType managedType
         0: .line 58
            ldc Lorg/hibernate/jpa/internal/metamodel/EmbeddableTypeImpl;
            aload 1 /* managedType */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 59
            new org.hibernate.jpa.internal.metamodel.Helper$ComponentAttributeSource
            dup
            aload 1 /* managedType */
            checkcast org.hibernate.jpa.internal.metamodel.EmbeddableTypeImpl
            invokevirtual org.hibernate.jpa.internal.metamodel.EmbeddableTypeImpl.getHibernateType:()Lorg/hibernate/type/ComponentType;
            invokespecial org.hibernate.jpa.internal.metamodel.Helper$ComponentAttributeSource.<init>:(Lorg/hibernate/type/CompositeType;)V
            areturn
         2: .line 61
      StackMap locals:
      StackMap stack:
            ldc Ljavax/persistence/metamodel/IdentifiableType;
            aload 1 /* managedType */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 62
            aload 1 /* managedType */
            invokeinterface javax.persistence.metamodel.ManagedType.getJavaType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* entityName */
        start local 2 // java.lang.String entityName
         4: .line 63
            getstatic org.hibernate.jpa.internal.metamodel.Helper.log:Lorg/jboss/logging/Logger;
            ldc "Attempting to resolve managed type as entity using %s"
            aload 2 /* entityName */
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 64
            new org.hibernate.jpa.internal.metamodel.Helper$EntityPersisterAttributeSource
            dup
            aload 0 /* sessionFactory */
            aload 2 /* entityName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getEntityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            invokespecial org.hibernate.jpa.internal.metamodel.Helper$EntityPersisterAttributeSource.<init>:(Lorg/hibernate/persister/entity/EntityPersister;)V
            areturn
        end local 2 // java.lang.String entityName
         6: .line 67
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         7: .line 68
            ldc "Unknown ManagedType implementation [%s]"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* managedType */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         8: .line 67
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // javax.persistence.metamodel.ManagedType managedType
        end local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0  sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    9     1     managedType  Ljavax/persistence/metamodel/ManagedType;
            4    6     2      entityName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      sessionFactory  
      managedType     

  public org.hibernate.type.Type resolveType(javax.persistence.metamodel.Attribute);
    descriptor: (Ljavax/persistence/metamodel/Attribute;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.jpa.internal.metamodel.Helper this
        start local 1 // javax.persistence.metamodel.Attribute attribute
         0: .line 109
            aload 0 /* this */
            getfield org.hibernate.jpa.internal.metamodel.Helper.sessionFactory:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* attribute */
            invokestatic org.hibernate.jpa.internal.metamodel.Helper.resolveType:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljavax/persistence/metamodel/Attribute;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // javax.persistence.metamodel.Attribute attribute
        end local 0 // org.hibernate.jpa.internal.metamodel.Helper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/jpa/internal/metamodel/Helper;
            0    1     1  attribute  Ljavax/persistence/metamodel/Attribute;
    MethodParameters:
           Name  Flags
      attribute  

  public static org.hibernate.type.Type resolveType(org.hibernate.engine.spi.SessionFactoryImplementor, javax.persistence.metamodel.Attribute);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljavax/persistence/metamodel/Attribute;)Lorg/hibernate/type/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
        start local 1 // javax.persistence.metamodel.Attribute attribute
         0: .line 113
            aload 0 /* sessionFactory */
            aload 1 /* attribute */
            invokeinterface javax.persistence.metamodel.Attribute.getDeclaringType:()Ljavax/persistence/metamodel/ManagedType;
            invokestatic org.hibernate.jpa.internal.metamodel.Helper.resolveAttributeSource:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljavax/persistence/metamodel/ManagedType;)Lorg/hibernate/jpa/internal/metamodel/Helper$AttributeSource;
            aload 1 /* attribute */
            invokeinterface javax.persistence.metamodel.Attribute.getName:()Ljava/lang/String;
            invokeinterface org.hibernate.jpa.internal.metamodel.Helper$AttributeSource.findType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // javax.persistence.metamodel.Attribute attribute
        end local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  sessionFactory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    1     1       attribute  Ljavax/persistence/metamodel/Attribute;
    MethodParameters:
                Name  Flags
      sessionFactory  
      attribute       
}
SourceFile: "Helper.java"
NestMembers:
  org.hibernate.jpa.internal.metamodel.Helper$AttributeSource  org.hibernate.jpa.internal.metamodel.Helper$ComponentAttributeSource  org.hibernate.jpa.internal.metamodel.Helper$EntityPersisterAttributeSource
InnerClasses:
  public abstract AttributeSource = org.hibernate.jpa.internal.metamodel.Helper$AttributeSource of org.hibernate.jpa.internal.metamodel.Helper
  public ComponentAttributeSource = org.hibernate.jpa.internal.metamodel.Helper$ComponentAttributeSource of org.hibernate.jpa.internal.metamodel.Helper
  public EntityPersisterAttributeSource = org.hibernate.jpa.internal.metamodel.Helper$EntityPersisterAttributeSource of org.hibernate.jpa.internal.metamodel.Helper