public class org.hibernate.hql.internal.ast.util.SessionFactoryHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.internal.ast.util.SessionFactoryHelper
  super_class: java.lang.Object
{
  private final org.hibernate.engine.spi.SessionFactoryImplementor sfi;
    descriptor: Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, org.hibernate.persister.entity.PropertyMapping> collectionPropertyMappingByRole;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/persister/entity/PropertyMapping;>;

  public void <init>(org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* sfi */
            putfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
         2: .line 54
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.collectionPropertyMappingByRole:Ljava/util/Map;
         3: .line 55
            return
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1   sfi  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
      Name  Flags
      sfi   

  public org.hibernate.engine.spi.SessionFactoryImplementor getFactory();
    descriptor: ()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
         0: .line 63
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;

  public boolean hasPhysicalDiscriminatorColumn(org.hibernate.persister.entity.Queryable);
    descriptor: (Lorg/hibernate/persister/entity/Queryable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.persister.entity.Queryable persister
         0: .line 75
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.Queryable.getDiscriminatorType:()Lorg/hibernate/type/Type;
            ifnull 4
         1: .line 76
            aload 1 /* persister */
            invokeinterface org.hibernate.persister.entity.Queryable.getDiscriminatorColumnName:()Ljava/lang/String;
            astore 2 /* discrimColumnName */
        start local 2 // java.lang.String discrimColumnName
         2: .line 79
            aload 2 /* discrimColumnName */
            ifnull 4
            ldc "clazz_"
            aload 2 /* discrimColumnName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 80
            iconst_1
            ireturn
        end local 2 // java.lang.String discrimColumnName
         4: .line 83
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.hibernate.persister.entity.Queryable persister
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    5     1          persister  Lorg/hibernate/persister/entity/Queryable;
            2    4     2  discrimColumnName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      persister  

  public java.lang.String getImportedClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String className
         0: .line 94
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* className */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.getImportedClassName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  public org.hibernate.persister.entity.Queryable findQueryableUsingImports(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String className
         0: .line 105
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            aload 1 /* className */
            invokestatic org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findQueryableUsingImports:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/lang/String;)Lorg/hibernate/persister/entity/Queryable;
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  public static org.hibernate.persister.entity.Queryable findQueryableUsingImports(org.hibernate.engine.spi.SessionFactoryImplementor, java.lang.String);
    descriptor: (Lorg/hibernate/engine/spi/SessionFactoryImplementor;Ljava/lang/String;)Lorg/hibernate/persister/entity/Queryable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
        start local 1 // java.lang.String className
         0: .line 118
            aload 0 /* sfi */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* className */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.getImportedClassName:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* importedClassName */
        start local 2 // java.lang.String importedClassName
         1: .line 119
            aload 2 /* importedClassName */
            ifnonnull 3
         2: .line 120
            aconst_null
            areturn
         3: .line 123
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* sfi */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 2 /* importedClassName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Queryable
         4: areturn
         5: .line 125
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            pop
         6: .line 126
            aconst_null
            areturn
        end local 2 // java.lang.String importedClassName
        end local 1 // java.lang.String className
        end local 0 // org.hibernate.engine.spi.SessionFactoryImplementor sfi
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0                sfi  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            0    7     1          className  Ljava/lang/String;
            1    7     2  importedClassName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  Class org.hibernate.MappingException
    MethodParameters:
           Name  Flags
      sfi        
      className  

  public org.hibernate.persister.entity.EntityPersister findEntityPersisterByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String name
         0: .line 141
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersisters:()Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.persister.entity.EntityPersister
            astore 2 /* persister */
        start local 2 // org.hibernate.persister.entity.EntityPersister persister
         1: .line 142
            aload 2 /* persister */
            ifnull 3
         2: .line 143
            aload 2 /* persister */
            areturn
         3: .line 147
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* name */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.getImportedClassName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* importedClassName */
        start local 3 // java.lang.String importedClassName
         4: .line 148
            aload 3 /* importedClassName */
            ifnonnull 6
         5: .line 149
            aconst_null
            areturn
         6: .line 151
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 3 /* importedClassName */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.entityPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            areturn
        end local 3 // java.lang.String importedClassName
        end local 2 // org.hibernate.persister.entity.EntityPersister persister
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    7     1               name  Ljava/lang/String;
            1    7     2          persister  Lorg/hibernate/persister/entity/EntityPersister;
            4    7     3  importedClassName  Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.persister.entity.EntityPersister requireClassPersister(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String name
         0: .line 167
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findEntityPersisterByName:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* cp */
        start local 2 // org.hibernate.persister.entity.EntityPersister cp
         1: .line 168
            aload 2 /* cp */
            ifnonnull 5
         2: .line 169
            new org.hibernate.hql.internal.ast.QuerySyntaxException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " is not mapped"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.hql.internal.ast.QuerySyntaxException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.hibernate.persister.entity.EntityPersister cp
         3: .line 172
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 3 /* e */
        start local 3 // org.hibernate.MappingException e
         4: .line 173
            new org.hibernate.hql.internal.ast.DetailedSemanticException
            dup
            aload 3 /* e */
            invokevirtual org.hibernate.MappingException.getMessage:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.hibernate.hql.internal.ast.DetailedSemanticException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.hibernate.MappingException e
        start local 2 // org.hibernate.persister.entity.EntityPersister cp
         5: .line 175
      StackMap locals: org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 2 /* cp */
            areturn
        end local 2 // org.hibernate.persister.entity.EntityPersister cp
        end local 1 // java.lang.String name
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    6     1  name  Ljava/lang/String;
            1    3     2    cp  Lorg/hibernate/persister/entity/EntityPersister;
            5    6     2    cp  Lorg/hibernate/persister/entity/EntityPersister;
            4    5     3     e  Lorg/hibernate/MappingException;
      Exception table:
        from    to  target  type
           0     3       3  Class org.hibernate.MappingException
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
      Name  Flags
      name  

  public org.hibernate.persister.collection.QueryableCollection getCollectionPersister(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/collection/QueryableCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String role
         0: .line 187
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* role */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            checkcast org.hibernate.persister.collection.QueryableCollection
         1: areturn
         2: .line 189
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
         3: .line 190
            new org.hibernate.QueryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "collection is not queryable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* role */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 192
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         5: .line 193
            new org.hibernate.QueryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "collection not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* role */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    6     1  role  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
           0     1       4  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      role  

  public org.hibernate.persister.collection.QueryableCollection requireQueryableCollection(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/collection/QueryableCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String role
         0: .line 209
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getMetamodel:()Lorg/hibernate/metamodel/spi/MetamodelImplementor;
            aload 1 /* role */
            invokeinterface org.hibernate.metamodel.spi.MetamodelImplementor.collectionPersister:(Ljava/lang/String;)Lorg/hibernate/persister/collection/CollectionPersister;
            checkcast org.hibernate.persister.collection.QueryableCollection
            astore 2 /* queryableCollection */
        start local 2 // org.hibernate.persister.collection.QueryableCollection queryableCollection
         1: .line 210
            aload 2 /* queryableCollection */
            ifnull 3
         2: .line 211
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.collectionPropertyMappingByRole:Ljava/util/Map;
            aload 1 /* role */
            new org.hibernate.persister.collection.CollectionPropertyMapping
            dup
            aload 2 /* queryableCollection */
            invokespecial org.hibernate.persister.collection.CollectionPropertyMapping.<init>:(Lorg/hibernate/persister/collection/QueryableCollection;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 213
      StackMap locals: org.hibernate.persister.collection.QueryableCollection
      StackMap stack:
            aload 2 /* queryableCollection */
         4: areturn
        end local 2 // org.hibernate.persister.collection.QueryableCollection queryableCollection
         5: .line 215
      StackMap locals: org.hibernate.hql.internal.ast.util.SessionFactoryHelper java.lang.String
      StackMap stack: java.lang.ClassCastException
            pop
         6: .line 216
            new org.hibernate.QueryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "collection role is not queryable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* role */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 218
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         8: .line 219
            new org.hibernate.QueryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "collection role not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* role */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    9     1                 role  Ljava/lang/String;
            1    5     2  queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.ClassCastException
           0     4       7  Class java.lang.Exception
    Exceptions:
      throws org.hibernate.QueryException
    MethodParameters:
      Name  Flags
      role  

  public org.hibernate.persister.entity.PropertyMapping getCollectionPropertyMapping(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/persister/entity/PropertyMapping;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String role
         0: .line 231
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.collectionPropertyMappingByRole:Ljava/util/Map;
            aload 1 /* role */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.persister.entity.PropertyMapping
            areturn
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  role  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      role  

  public java.lang.String[] getCollectionElementColumns(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String role
        start local 2 // java.lang.String roleAlias
         0: .line 244
            aload 0 /* this */
            aload 1 /* role */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getCollectionPropertyMapping:(Ljava/lang/String;)Lorg/hibernate/persister/entity/PropertyMapping;
            aload 2 /* roleAlias */
            ldc "elements"
            invokeinterface org.hibernate.persister.entity.PropertyMapping.toColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 2 // java.lang.String roleAlias
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1       role  Ljava/lang/String;
            0    1     2  roleAlias  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      role       
      roleAlias  

  public org.hibernate.engine.internal.JoinSequence createJoinSequence();
    descriptor: ()Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
         0: .line 253
            new org.hibernate.engine.internal.JoinSequence
            dup
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokespecial org.hibernate.engine.internal.JoinSequence.<init>:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)V
            areturn
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;

  public org.hibernate.engine.internal.JoinSequence createJoinSequence(boolean, org.hibernate.type.AssociationType, java.lang.String, org.hibernate.sql.JoinType, java.lang.String[]);
    descriptor: (ZLorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // boolean implicit
        start local 2 // org.hibernate.type.AssociationType associationType
        start local 3 // java.lang.String tableAlias
        start local 4 // org.hibernate.sql.JoinType joinType
        start local 5 // java.lang.String[] columns
         0: .line 268
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            astore 6 /* joinSequence */
        start local 6 // org.hibernate.engine.internal.JoinSequence joinSequence
         1: .line 269
            aload 6 /* joinSequence */
            iload 1 /* implicit */
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         2: .line 270
            aload 6 /* joinSequence */
            aload 2 /* associationType */
            aload 3 /* tableAlias */
            aload 4 /* joinType */
            aload 5 /* columns */
            invokevirtual org.hibernate.engine.internal.JoinSequence.addJoin:(Lorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         3: .line 271
            aload 6 /* joinSequence */
            areturn
        end local 6 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 5 // java.lang.String[] columns
        end local 4 // org.hibernate.sql.JoinType joinType
        end local 3 // java.lang.String tableAlias
        end local 2 // org.hibernate.type.AssociationType associationType
        end local 1 // boolean implicit
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1         implicit  Z
            0    4     2  associationType  Lorg/hibernate/type/AssociationType;
            0    4     3       tableAlias  Ljava/lang/String;
            0    4     4         joinType  Lorg/hibernate/sql/JoinType;
            0    4     5          columns  [Ljava/lang/String;
            1    4     6     joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    MethodParameters:
                 Name  Flags
      implicit         
      associationType  
      tableAlias       
      joinType         
      columns          

  public org.hibernate.engine.internal.JoinSequence createJoinSequence(boolean, org.hibernate.type.AssociationType, java.lang.String, org.hibernate.sql.JoinType, java.lang.String[][]);
    descriptor: (ZLorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // boolean implicit
        start local 2 // org.hibernate.type.AssociationType associationType
        start local 3 // java.lang.String tableAlias
        start local 4 // org.hibernate.sql.JoinType joinType
        start local 5 // java.lang.String[][] columns
         0: .line 286
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            astore 6 /* joinSequence */
        start local 6 // org.hibernate.engine.internal.JoinSequence joinSequence
         1: .line 287
            aload 6 /* joinSequence */
            iload 1 /* implicit */
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         2: .line 288
            aload 6 /* joinSequence */
            aload 2 /* associationType */
            aload 3 /* tableAlias */
            aload 4 /* joinType */
            aload 5 /* columns */
            invokevirtual org.hibernate.engine.internal.JoinSequence.addJoin:(Lorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         3: .line 289
            aload 6 /* joinSequence */
            areturn
        end local 6 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 5 // java.lang.String[][] columns
        end local 4 // org.hibernate.sql.JoinType joinType
        end local 3 // java.lang.String tableAlias
        end local 2 // org.hibernate.type.AssociationType associationType
        end local 1 // boolean implicit
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1         implicit  Z
            0    4     2  associationType  Lorg/hibernate/type/AssociationType;
            0    4     3       tableAlias  Ljava/lang/String;
            0    4     4         joinType  Lorg/hibernate/sql/JoinType;
            0    4     5          columns  [[Ljava/lang/String;
            1    4     6     joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    MethodParameters:
                 Name  Flags
      implicit         
      associationType  
      tableAlias       
      joinType         
      columns          

  public org.hibernate.engine.internal.JoinSequence createCollectionJoinSequence(org.hibernate.persister.collection.QueryableCollection, java.lang.String);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.persister.collection.QueryableCollection collPersister
        start local 2 // java.lang.String collectionName
         0: .line 301
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            astore 3 /* joinSequence */
        start local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
         1: .line 302
            aload 3 /* joinSequence */
            aload 1 /* collPersister */
            aload 2 /* collectionName */
            invokevirtual org.hibernate.engine.internal.JoinSequence.setRoot:(Lorg/hibernate/persister/entity/Joinable;Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         2: .line 303
            aload 3 /* joinSequence */
            iconst_1
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
         3: .line 308
            aload 3 /* joinSequence */
            areturn
        end local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 2 // java.lang.String collectionName
        end local 1 // org.hibernate.persister.collection.QueryableCollection collPersister
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1   collPersister  Lorg/hibernate/persister/collection/QueryableCollection;
            0    4     2  collectionName  Ljava/lang/String;
            1    4     3    joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    MethodParameters:
                Name  Flags
      collPersister   
      collectionName  

  public java.lang.String getIdentifierOrUniqueKeyPropertyName(org.hibernate.type.EntityType);
    descriptor: (Lorg/hibernate/type/EntityType;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.EntityType entityType
         0: .line 323
            aload 1 /* entityType */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.EntityType.getIdentifierOrUniqueKeyPropertyName:(Lorg/hibernate/engine/spi/Mapping;)Ljava/lang/String;
         1: areturn
         2: .line 325
      StackMap locals:
      StackMap stack: org.hibernate.MappingException
            astore 2 /* me */
        start local 2 // org.hibernate.MappingException me
         3: .line 326
            new org.hibernate.QueryException
            dup
            aload 2 /* me */
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/Exception;)V
            athrow
        end local 2 // org.hibernate.MappingException me
        end local 1 // org.hibernate.type.EntityType entityType
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1  entityType  Lorg/hibernate/type/EntityType;
            3    4     2          me  Lorg/hibernate/MappingException;
      Exception table:
        from    to  target  type
           0     1       2  Class org.hibernate.MappingException
    MethodParameters:
            Name  Flags
      entityType  

  public int getColumnSpan(org.hibernate.type.Type);
    descriptor: (Lorg/hibernate/type/Type;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.Type type
         0: .line 338
            aload 1 /* type */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
            ireturn
        end local 1 // org.hibernate.type.Type type
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  type  Lorg/hibernate/type/Type;
    MethodParameters:
      Name  Flags
      type  

  public java.lang.String getAssociatedEntityName(org.hibernate.type.CollectionType);
    descriptor: (Lorg/hibernate/type/CollectionType;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.CollectionType collectionType
         0: .line 350
            aload 1 /* collectionType */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.CollectionType.getAssociatedEntityName:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.type.CollectionType collectionType
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  collectionType  Lorg/hibernate/type/CollectionType;
    MethodParameters:
                Name  Flags
      collectionType  

  private org.hibernate.type.Type getElementType(org.hibernate.type.CollectionType);
    descriptor: (Lorg/hibernate/type/CollectionType;)Lorg/hibernate/type/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.CollectionType collectionType
         0: .line 362
            aload 1 /* collectionType */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokevirtual org.hibernate.type.CollectionType.getElementType:(Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Lorg/hibernate/type/Type;
            areturn
        end local 1 // org.hibernate.type.CollectionType collectionType
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  collectionType  Lorg/hibernate/type/CollectionType;
    MethodParameters:
                Name  Flags
      collectionType  

  public org.hibernate.type.AssociationType getElementAssociationType(org.hibernate.type.CollectionType);
    descriptor: (Lorg/hibernate/type/CollectionType;)Lorg/hibernate/type/AssociationType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.CollectionType collectionType
         0: .line 374
            aload 0 /* this */
            aload 1 /* collectionType */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getElementType:(Lorg/hibernate/type/CollectionType;)Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.AssociationType
            areturn
        end local 1 // org.hibernate.type.CollectionType collectionType
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  collectionType  Lorg/hibernate/type/CollectionType;
    MethodParameters:
                Name  Flags
      collectionType  

  public org.hibernate.dialect.function.SQLFunction findSQLFunction(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String functionName
         0: .line 385
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSqlFunctionRegistry:()Lorg/hibernate/dialect/function/SQLFunctionRegistry;
            aload 1 /* functionName */
            invokevirtual org.hibernate.dialect.function.SQLFunctionRegistry.findSQLFunction:(Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
            areturn
        end local 1 // java.lang.String functionName
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  functionName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      functionName  

  private org.hibernate.dialect.function.SQLFunction requireSQLFunction(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String functionName
         0: .line 398
            aload 0 /* this */
            aload 1 /* functionName */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findSQLFunction:(Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
            astore 2 /* f */
        start local 2 // org.hibernate.dialect.function.SQLFunction f
         1: .line 399
            aload 2 /* f */
            ifnonnull 3
         2: .line 400
            new org.hibernate.QueryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to find SQL function: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* functionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.QueryException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 402
      StackMap locals: org.hibernate.dialect.function.SQLFunction
      StackMap stack:
            aload 2 /* f */
            areturn
        end local 2 // org.hibernate.dialect.function.SQLFunction f
        end local 1 // java.lang.String functionName
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    4     1  functionName  Ljava/lang/String;
            1    4     2             f  Lorg/hibernate/dialect/function/SQLFunction;
    MethodParameters:
              Name  Flags
      functionName  

  public org.hibernate.type.Type findFunctionReturnType(java.lang.String, antlr.collections.AST);
    descriptor: (Ljava/lang/String;Lantlr/collections/AST;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String functionName
        start local 2 // antlr.collections.AST first
         0: .line 414
            aload 0 /* this */
            aload 1 /* functionName */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireSQLFunction:(Ljava/lang/String;)Lorg/hibernate/dialect/function/SQLFunction;
            astore 3 /* sqlFunction */
        start local 3 // org.hibernate.dialect.function.SQLFunction sqlFunction
         1: .line 415
            aload 0 /* this */
            aload 1 /* functionName */
            aload 3 /* sqlFunction */
            aload 2 /* first */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.findFunctionReturnType:(Ljava/lang/String;Lorg/hibernate/dialect/function/SQLFunction;Lantlr/collections/AST;)Lorg/hibernate/type/Type;
            areturn
        end local 3 // org.hibernate.dialect.function.SQLFunction sqlFunction
        end local 2 // antlr.collections.AST first
        end local 1 // java.lang.String functionName
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    2     1  functionName  Ljava/lang/String;
            0    2     2         first  Lantlr/collections/AST;
            1    2     3   sqlFunction  Lorg/hibernate/dialect/function/SQLFunction;
    MethodParameters:
              Name  Flags
      functionName  
      first         

  public org.hibernate.type.Type findFunctionReturnType(java.lang.String, org.hibernate.dialect.function.SQLFunction, antlr.collections.AST);
    descriptor: (Ljava/lang/String;Lorg/hibernate/dialect/function/SQLFunction;Lantlr/collections/AST;)Lorg/hibernate/type/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // java.lang.String functionName
        start local 2 // org.hibernate.dialect.function.SQLFunction sqlFunction
        start local 3 // antlr.collections.AST firstArgument
         0: .line 420
            aconst_null
            astore 4 /* argumentType */
        start local 4 // org.hibernate.type.Type argumentType
         1: .line 421
            aload 3 /* firstArgument */
            ifnull 7
         2: .line 422
            ldc "cast"
            aload 1 /* functionName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 423
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getTypeResolver:()Lorg/hibernate/type/TypeResolver;
            aload 3 /* firstArgument */
            invokeinterface antlr.collections.AST.getNextSibling:()Lantlr/collections/AST;
            invokeinterface antlr.collections.AST.getText:()Ljava/lang/String;
            invokevirtual org.hibernate.type.TypeResolver.heuristicType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 4 /* argumentType */
         4: .line 424
            goto 7
         5: .line 425
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
            ldc Lorg/hibernate/hql/internal/ast/tree/SqlNode;
            aload 3 /* firstArgument */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 426
            aload 3 /* firstArgument */
            checkcast org.hibernate.hql.internal.ast.tree.SqlNode
            invokevirtual org.hibernate.hql.internal.ast.tree.SqlNode.getDataType:()Lorg/hibernate/type/Type;
            astore 4 /* argumentType */
         7: .line 430
      StackMap locals:
      StackMap stack:
            aload 2 /* sqlFunction */
            aload 4 /* argumentType */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.dialect.function.SQLFunction.getReturnType:(Lorg/hibernate/type/Type;Lorg/hibernate/engine/spi/Mapping;)Lorg/hibernate/type/Type;
            areturn
        end local 4 // org.hibernate.type.Type argumentType
        end local 3 // antlr.collections.AST firstArgument
        end local 2 // org.hibernate.dialect.function.SQLFunction sqlFunction
        end local 1 // java.lang.String functionName
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    8     1   functionName  Ljava/lang/String;
            0    8     2    sqlFunction  Lorg/hibernate/dialect/function/SQLFunction;
            0    8     3  firstArgument  Lantlr/collections/AST;
            1    8     4   argumentType  Lorg/hibernate/type/Type;
    MethodParameters:
               Name  Flags
      functionName   
      sqlFunction    
      firstArgument  

  public java.lang.String[][] generateColumnNames(org.hibernate.type.Type[]);
    descriptor: ([Lorg/hibernate/type/Type;)[[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
        start local 1 // org.hibernate.type.Type[] sqlResultTypes
         0: .line 434
            aload 1 /* sqlResultTypes */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokestatic org.hibernate.hql.internal.NameGenerator.generateColumnNames:([Lorg/hibernate/type/Type;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)[[Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.type.Type[] sqlResultTypes
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            0    1     1  sqlResultTypes  [Lorg/hibernate/type/Type;
    MethodParameters:
                Name  Flags
      sqlResultTypes  

  public boolean isStrictJPAQLComplianceEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
         0: .line 438
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.SessionFactoryHelper.sfi:Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.getJpaCompliance:()Lorg/hibernate/jpa/spi/JpaCompliance;
            invokeinterface org.hibernate.jpa.spi.JpaCompliance.isJpaQueryComplianceEnabled:()Z
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
}
SourceFile: "SessionFactoryHelper.java"