public class org.hibernate.hql.internal.ast.tree.FromElementFactory implements org.hibernate.hql.internal.antlr.SqlTokenTypes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.hql.internal.ast.tree.FromElementFactory
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.hibernate.hql.internal.ast.tree.FromClause fromClause;
    descriptor: Lorg/hibernate/hql/internal/ast/tree/FromClause;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.hql.internal.ast.tree.FromElement origin;
    descriptor: Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String path;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String classAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] columns;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean implied;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean inElementsFunction;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean collection;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.persister.collection.QueryableCollection queryableCollection;
    descriptor: Lorg/hibernate/persister/collection/QueryableCollection;
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.type.CollectionType collectionType;
    descriptor: Lorg/hibernate/type/CollectionType;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.hql.internal.ast.tree.FromClause, org.hibernate.hql.internal.ast.tree.FromElement, java.lang.String);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromClause;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement origin
        start local 3 // java.lang.String path
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 0 /* this */
            aload 1 /* fromClause */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
         2: .line 58
            aload 0 /* this */
            aload 2 /* origin */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
         3: .line 59
            aload 0 /* this */
            aload 3 /* path */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
         4: .line 60
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collection:Z
         5: .line 61
            return
        end local 3 // java.lang.String path
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement origin
        end local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    6     1  fromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     2      origin  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0    6     3        path  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      fromClause  
      origin      
      path        

  public void <init>(org.hibernate.hql.internal.ast.tree.FromClause, org.hibernate.hql.internal.ast.tree.FromElement, java.lang.String, java.lang.String, java.lang.String[], boolean);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromClause;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement origin
        start local 3 // java.lang.String path
        start local 4 // java.lang.String classAlias
        start local 5 // java.lang.String[] columns
        start local 6 // boolean implied
         0: .line 73
            aload 0 /* this */
            aload 1 /* fromClause */
            aload 2 /* origin */
            aload 3 /* path */
            invokespecial org.hibernate.hql.internal.ast.tree.FromElementFactory.<init>:(Lorg/hibernate/hql/internal/ast/tree/FromClause;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;)V
         1: .line 74
            aload 0 /* this */
            aload 4 /* classAlias */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
         2: .line 75
            aload 0 /* this */
            aload 5 /* columns */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.columns:[Ljava/lang/String;
         3: .line 76
            aload 0 /* this */
            iload 6 /* implied */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
         4: .line 77
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collection:Z
         5: .line 78
            return
        end local 6 // boolean implied
        end local 5 // java.lang.String[] columns
        end local 4 // java.lang.String classAlias
        end local 3 // java.lang.String path
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement origin
        end local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    6     1  fromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     2      origin  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0    6     3        path  Ljava/lang/String;
            0    6     4  classAlias  Ljava/lang/String;
            0    6     5     columns  [Ljava/lang/String;
            0    6     6     implied  Z
    MethodParameters:
            Name  Flags
      fromClause  
      origin      
      path        
      classAlias  
      columns     
      implied     

  org.hibernate.hql.internal.ast.tree.FromElement addFromElement();
    descriptor: ()Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
         0: .line 81
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getParentFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            astore 1 /* parentFromClause */
        start local 1 // org.hibernate.hql.internal.ast.tree.FromClause parentFromClause
         1: .line 82
            aload 1 /* parentFromClause */
            ifnull 6
         2: .line 84
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            invokestatic org.hibernate.hql.internal.ast.util.PathHelper.getAlias:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* pathAlias */
        start local 2 // java.lang.String pathAlias
         3: .line 85
            aload 1 /* parentFromClause */
            aload 2 /* pathAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* parentFromElement */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement parentFromElement
         4: .line 86
            aload 3 /* parentFromElement */
            ifnull 6
         5: .line 87
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 2 /* pathAlias */
            aload 3 /* parentFromElement */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createFromElementInSubselect:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement parentFromElement
        end local 2 // java.lang.String pathAlias
         6: .line 91
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 2 /* entityPersister */
        start local 2 // org.hibernate.persister.entity.EntityPersister entityPersister
         7: .line 93
            aload 0 /* this */
         8: .line 94
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
         9: .line 95
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
        10: .line 96
            aload 2 /* entityPersister */
        11: .line 97
            aload 2 /* entityPersister */
            checkcast org.hibernate.persister.entity.Queryable
            invokeinterface org.hibernate.persister.entity.Queryable.getType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
        12: .line 98
            aconst_null
        13: .line 93
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createAndAddFromElement:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* elem */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement elem
        14: .line 102
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 2 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getQuerySpaces:()[Ljava/io/Serializable;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.addQuerySpaces:([Ljava/io/Serializable;)V
        15: .line 104
            aload 3 /* elem */
            areturn
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 2 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 1 // org.hibernate.hql.internal.ast.tree.FromClause parentFromClause
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            1   16     1   parentFromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            3    6     2          pathAlias  Ljava/lang/String;
            4    6     3  parentFromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            7   16     2    entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
           14   16     3               elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    Exceptions:
      throws antlr.SemanticException

  private org.hibernate.hql.internal.ast.tree.FromElement createFromElementInSubselect(java.lang.String, java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String pathAlias
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement parentFromElement
        start local 4 // java.lang.String classAlias
         0: .line 112
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "createFromElementInSubselect() : path = %s"
            aload 1 /* path */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 115
            aload 0 /* this */
            aload 1 /* path */
            aload 4 /* classAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.evaluateFromElementPath:(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 5 /* fromElement */
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         2: .line 116
            aload 5 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            astore 6 /* entityPersister */
        start local 6 // org.hibernate.persister.entity.EntityPersister entityPersister
         3: .line 121
            aconst_null
            astore 7 /* tableAlias */
        start local 7 // java.lang.String tableAlias
         4: .line 122
            aload 2 /* pathAlias */
            aload 3 /* parentFromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getClassAlias:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 8 /* correlatedSubselect */
        start local 8 // boolean correlatedSubselect
         5: .line 123
            iload 8 /* correlatedSubselect */
            ifeq 8
         6: .line 124
            aload 5 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            astore 7 /* tableAlias */
         7: .line 125
            goto 9
         8: .line 127
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String java.lang.String org.hibernate.hql.internal.ast.tree.FromElement java.lang.String org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.persister.entity.EntityPersister java.lang.String int
      StackMap stack:
            aconst_null
            astore 7 /* tableAlias */
         9: .line 131
      StackMap locals:
      StackMap stack:
            aload 5 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            if_acmpeq 20
        10: .line 132
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "createFromElementInSubselect() : creating a new FROM element..."
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
        11: .line 133
            aload 0 /* this */
            aload 6 /* entityPersister */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createFromElement:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 5 /* fromElement */
        12: .line 134
            aload 0 /* this */
        13: .line 135
            aload 5 /* fromElement */
        14: .line 136
            aload 1 /* path */
        15: .line 137
            aload 4 /* classAlias */
        16: .line 138
            aload 6 /* entityPersister */
        17: .line 139
            aload 6 /* entityPersister */
            checkcast org.hibernate.persister.entity.Queryable
            invokeinterface org.hibernate.persister.entity.Queryable.getType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
        18: .line 140
            aload 7 /* tableAlias */
        19: .line 134
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.initializeAndAddFromElement:(Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)V
        20: .line 143
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "createFromElementInSubselect() : %s -> %s"
            aload 1 /* path */
            aload 5 /* fromElement */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 144
            aload 5 /* fromElement */
            areturn
        end local 8 // boolean correlatedSubselect
        end local 7 // java.lang.String tableAlias
        end local 6 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 4 // java.lang.String classAlias
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement parentFromElement
        end local 2 // java.lang.String pathAlias
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   22     1                 path  Ljava/lang/String;
            0   22     2            pathAlias  Ljava/lang/String;
            0   22     3    parentFromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0   22     4           classAlias  Ljava/lang/String;
            2   22     5          fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            3   22     6      entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            4   22     7           tableAlias  Ljava/lang/String;
            5   22     8  correlatedSubselect  Z
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                   Name  Flags
      path               
      pathAlias          
      parentFromElement  
      classAlias         

  private org.hibernate.hql.internal.ast.tree.FromElement evaluateFromElementPath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String classAlias
         0: .line 148
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getASTFactory:()Lantlr/ASTFactory;
            astore 3 /* factory */
        start local 3 // antlr.ASTFactory factory
         1: .line 149
            aload 1 /* path */
            aload 3 /* factory */
            invokestatic org.hibernate.hql.internal.ast.util.PathHelper.parsePath:(Ljava/lang/String;Lantlr/ASTFactory;)Lantlr/collections/AST;
            checkcast org.hibernate.hql.internal.ast.tree.FromReferenceNode
            astore 4 /* pathNode */
        start local 4 // org.hibernate.hql.internal.ast.tree.FromReferenceNode pathNode
         2: .line 150
            aload 4 /* pathNode */
         3: .line 152
            iconst_0
         4: .line 154
            iconst_0
         5: .line 155
            aload 2 /* classAlias */
         6: .line 156
            aconst_null
         7: .line 150
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.recursiveResolve:(IZLjava/lang/String;Lantlr/collections/AST;)V
         8: .line 158
            aload 4 /* pathNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getImpliedJoin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ifnull 10
         9: .line 159
            aload 4 /* pathNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getImpliedJoin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        10: .line 161
      StackMap locals: antlr.ASTFactory org.hibernate.hql.internal.ast.tree.FromReferenceNode
      StackMap stack:
            aload 4 /* pathNode */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromReferenceNode.getFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 4 // org.hibernate.hql.internal.ast.tree.FromReferenceNode pathNode
        end local 3 // antlr.ASTFactory factory
        end local 2 // java.lang.String classAlias
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   11     1        path  Ljava/lang/String;
            0   11     2  classAlias  Ljava/lang/String;
            1   11     3     factory  Lantlr/ASTFactory;
            2   11     4    pathNode  Lorg/hibernate/hql/internal/ast/tree/FromReferenceNode;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
            Name  Flags
      path        
      classAlias  

  org.hibernate.hql.internal.ast.tree.FromElement createCollectionElementsJoin(org.hibernate.persister.collection.QueryableCollection, java.lang.String);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        start local 2 // java.lang.String collectionName
         0: .line 167
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
         1: .line 168
            aload 1 /* queryableCollection */
            aload 2 /* collectionName */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createCollectionJoinSequence:(Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
         2: .line 167
            astore 3 /* collectionJoinSequence */
        start local 3 // org.hibernate.engine.internal.JoinSequence collectionJoinSequence
         3: .line 169
            aload 0 /* this */
            aload 1 /* queryableCollection */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
         4: .line 170
            aload 0 /* this */
            aload 3 /* collectionJoinSequence */
            aconst_null
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createCollectionJoin:(Lorg/hibernate/engine/internal/JoinSequence;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 3 // org.hibernate.engine.internal.JoinSequence collectionJoinSequence
        end local 2 // java.lang.String collectionName
        end local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    5     1     queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
            0    5     2          collectionName  Ljava/lang/String;
            3    5     3  collectionJoinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                     Name  Flags
      queryableCollection  
      collectionName       

  public org.hibernate.hql.internal.ast.tree.FromElement createCollection(org.hibernate.persister.collection.QueryableCollection, java.lang.String, org.hibernate.sql.JoinType, boolean, boolean);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;Ljava/lang/String;Lorg/hibernate/sql/JoinType;ZZ)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        start local 2 // java.lang.String role
        start local 3 // org.hibernate.sql.JoinType joinType
        start local 4 // boolean fetchFlag
        start local 5 // boolean indexed
         0: .line 180
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collection:Z
            ifne 2
         1: .line 181
            new java.lang.IllegalStateException
            dup
            ldc "FromElementFactory not initialized for collections!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* indexed */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.inElementsFunction:Z
         3: .line 185
            aload 0 /* this */
            aload 1 /* queryableCollection */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
         4: .line 186
            aload 0 /* this */
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getCollectionType:()Lorg/hibernate/type/CollectionType;
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collectionType:Lorg/hibernate/type/CollectionType;
         5: .line 187
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getAliasGenerator:()Lorg/hibernate/hql/internal/ast/util/AliasGenerator;
            aload 2 /* role */
            invokevirtual org.hibernate.hql.internal.ast.util.AliasGenerator.createName:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* roleAlias */
        start local 7 // java.lang.String roleAlias
         6: .line 191
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.isSubQuery:()Z
            ifeq 7
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifne 7
            iconst_1
            goto 8
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.sql.JoinType int int top java.lang.String
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 8 /* explicitSubqueryFromElement */
        start local 8 // boolean explicitSubqueryFromElement
         9: .line 192
            iload 8 /* explicitSubqueryFromElement */
            ifeq 14
        10: .line 193
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            invokestatic org.hibernate.internal.util.StringHelper.root:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* pathRoot */
        start local 9 // java.lang.String pathRoot
        11: .line 194
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 9 /* pathRoot */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 10 /* origin */
        start local 10 // org.hibernate.hql.internal.ast.tree.FromElement origin
        12: .line 195
            aload 10 /* origin */
            ifnull 13
            aload 10 /* origin */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            if_acmpeq 14
        13: .line 196
      StackMap locals: int java.lang.String org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
        end local 10 // org.hibernate.hql.internal.ast.tree.FromElement origin
        end local 9 // java.lang.String pathRoot
        14: .line 201
      StackMap locals:
      StackMap stack:
            iload 8 /* explicitSubqueryFromElement */
            ifeq 16
            getstatic org.hibernate.hql.internal.ast.tree.DotNode.useThetaStyleImplicitJoins:Z
            ifeq 16
        15: .line 202
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
        16: .line 205
      StackMap locals:
      StackMap stack:
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 9 /* elementType */
        start local 9 // org.hibernate.type.Type elementType
        17: .line 206
            aload 9 /* elementType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifeq 20
        18: .line 208
            aload 0 /* this */
            aload 2 /* role */
            aload 7 /* roleAlias */
            aload 3 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createEntityAssociation:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 6 /* elem */
        start local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        19: .line 209
            goto 26
        end local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        20: .line 210
      StackMap locals: org.hibernate.type.Type
      StackMap stack:
            aload 9 /* elementType */
            invokeinterface org.hibernate.type.Type.isComponentType:()Z
            ifeq 24
        21: .line 212
            aload 0 /* this */
            aload 7 /* roleAlias */
            aload 3 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoinSequence:(Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 10 /* joinSequence */
        start local 10 // org.hibernate.engine.internal.JoinSequence joinSequence
        22: .line 213
            aload 0 /* this */
            aload 10 /* joinSequence */
            aload 7 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createCollectionJoin:(Lorg/hibernate/engine/internal/JoinSequence;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 6 /* elem */
        end local 10 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        23: .line 214
            goto 26
        end local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        24: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* roleAlias */
            aload 3 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoinSequence:(Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 10 /* joinSequence */
        start local 10 // org.hibernate.engine.internal.JoinSequence joinSequence
        25: .line 218
            aload 0 /* this */
            aload 10 /* joinSequence */
            aload 7 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createCollectionJoin:(Lorg/hibernate/engine/internal/JoinSequence;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 6 /* elem */
        end local 10 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        26: .line 221
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory org.hibernate.persister.collection.QueryableCollection java.lang.String org.hibernate.sql.JoinType int int org.hibernate.hql.internal.ast.tree.FromElement java.lang.String int org.hibernate.type.Type
      StackMap stack:
            aload 6 /* elem */
            aload 2 /* role */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setRole:(Ljava/lang/String;)V
        27: .line 222
            aload 6 /* elem */
            aload 1 /* queryableCollection */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setQueryableCollection:(Lorg/hibernate/persister/collection/QueryableCollection;)V
        28: .line 224
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifeq 30
        29: .line 225
            aload 6 /* elem */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setIncludeSubclasses:(Z)V
        30: .line 228
      StackMap locals:
      StackMap stack:
            iload 8 /* explicitSubqueryFromElement */
            ifeq 32
        31: .line 230
            aload 6 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setInProjectionList:(Z)V
        32: .line 233
      StackMap locals:
      StackMap stack:
            iload 4 /* fetchFlag */
            ifeq 34
        33: .line 234
            aload 6 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setFetch:(Z)V
        34: .line 236
      StackMap locals:
      StackMap stack:
            aload 6 /* elem */
            areturn
        end local 9 // org.hibernate.type.Type elementType
        end local 8 // boolean explicitSubqueryFromElement
        end local 7 // java.lang.String roleAlias
        end local 6 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 5 // boolean indexed
        end local 4 // boolean fetchFlag
        end local 3 // org.hibernate.sql.JoinType joinType
        end local 2 // java.lang.String role
        end local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   35     0                         this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   35     1          queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
            0   35     2                         role  Ljava/lang/String;
            0   35     3                     joinType  Lorg/hibernate/sql/JoinType;
            0   35     4                    fetchFlag  Z
            0   35     5                      indexed  Z
           19   20     6                         elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           23   24     6                         elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           26   35     6                         elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            6   35     7                    roleAlias  Ljava/lang/String;
            9   35     8  explicitSubqueryFromElement  Z
           11   14     9                     pathRoot  Ljava/lang/String;
           12   14    10                       origin  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           17   35     9                  elementType  Lorg/hibernate/type/Type;
           22   23    10                 joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
           25   26    10                 joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                     Name  Flags
      queryableCollection  
      role                 
      joinType             
      fetchFlag            
      indexed              

  public org.hibernate.hql.internal.ast.tree.FromElement createEntityJoin(java.lang.String, java.lang.String, org.hibernate.engine.internal.JoinSequence, boolean, boolean, org.hibernate.type.EntityType, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;ZZLorg/hibernate/type/EntityType;Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=9
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String entityClass
        start local 2 // java.lang.String tableAlias
        start local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 4 // boolean fetchFlag
        start local 5 // boolean inFrom
        start local 6 // org.hibernate.type.EntityType type
        start local 7 // java.lang.String role
        start local 8 // java.lang.String joinPath
         0: .line 248
            aload 0 /* this */
            aload 1 /* entityClass */
            aload 2 /* tableAlias */
            aload 3 /* joinSequence */
            aload 6 /* type */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoin:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/type/EntityType;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 9 /* elem */
        start local 9 // org.hibernate.hql.internal.ast.tree.FromElement elem
         1: .line 249
            aload 9 /* elem */
            iload 4 /* fetchFlag */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setFetch:(Z)V
         2: .line 251
            aload 8 /* joinPath */
            ifnull 4
         3: .line 252
            aload 9 /* elem */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 8 /* joinPath */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getTreatAsDeclarationsByPath:(Ljava/lang/String;)Ljava/util/Set;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.applyTreatAsDeclarations:(Ljava/util/Set;)V
         4: .line 255
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 9 /* elem */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getEntityPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            astore 10 /* entityPersister */
        start local 10 // org.hibernate.persister.entity.EntityPersister entityPersister
         5: .line 256
            aload 10 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getQuerySpaces:()[Ljava/io/Serializable;
            arraylength
            istore 11 /* numberOfTables */
        start local 11 // int numberOfTables
         6: .line 257
            iload 11 /* numberOfTables */
            iconst_1
            if_icmple 9
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifeq 9
            aload 9 /* elem */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.useFromFragment:()Z
            ifne 9
         7: .line 258
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "createEntityJoin() : Implied multi-table entity join"
            invokeinterface org.hibernate.internal.CoreMessageLogger.debug:(Ljava/lang/Object;)V
         8: .line 259
            aload 9 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseFromFragment:(Z)V
         9: .line 264
      StackMap locals: org.hibernate.persister.entity.EntityPersister int
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifeq 13
            iload 5 /* inFrom */
            ifeq 13
        10: .line 265
            aload 3 /* joinSequence */
            iconst_0
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
        11: .line 266
            aload 9 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseFromFragment:(Z)V
        12: .line 267
            aload 9 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setImpliedInFromClause:(Z)V
        13: .line 269
      StackMap locals:
      StackMap stack:
            aload 9 /* elem */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.isSubQuery:()Z
            ifeq 19
        14: .line 274
            aload 9 /* elem */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 9 /* elem */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getOrigin:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            if_acmpne 16
        15: .line 276
            getstatic org.hibernate.hql.internal.ast.tree.DotNode.useThetaStyleImplicitJoins:Z
            ifeq 19
        16: .line 278
      StackMap locals:
      StackMap stack:
            aload 9 /* elem */
            sipush 137
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setType:(I)V
        17: .line 279
            aload 3 /* joinSequence */
            iconst_1
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
        18: .line 280
            aload 9 /* elem */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseFromFragment:(Z)V
        19: .line 284
      StackMap locals:
      StackMap stack:
            aload 9 /* elem */
            aload 7 /* role */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setRole:(Ljava/lang/String;)V
        20: .line 286
            aload 9 /* elem */
            areturn
        end local 11 // int numberOfTables
        end local 10 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 9 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 8 // java.lang.String joinPath
        end local 7 // java.lang.String role
        end local 6 // org.hibernate.type.EntityType type
        end local 5 // boolean inFrom
        end local 4 // boolean fetchFlag
        end local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 2 // java.lang.String tableAlias
        end local 1 // java.lang.String entityClass
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0             this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   21     1      entityClass  Ljava/lang/String;
            0   21     2       tableAlias  Ljava/lang/String;
            0   21     3     joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
            0   21     4        fetchFlag  Z
            0   21     5           inFrom  Z
            0   21     6             type  Lorg/hibernate/type/EntityType;
            0   21     7             role  Ljava/lang/String;
            0   21     8         joinPath  Ljava/lang/String;
            1   21     9             elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            5   21    10  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            6   21    11   numberOfTables  I
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
              Name  Flags
      entityClass   
      tableAlias    
      joinSequence  
      fetchFlag     
      inFrom        
      type          
      role          
      joinPath      

  public org.hibernate.hql.internal.ast.tree.FromElement createComponentJoin(org.hibernate.type.CompositeType);
    descriptor: (Lorg/hibernate/type/CompositeType;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.type.CompositeType type
         0: .line 293
            new org.hibernate.hql.internal.ast.tree.ComponentJoin
            dup
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 1 /* type */
            invokespecial org.hibernate.hql.internal.ast.tree.ComponentJoin.<init>:(Lorg/hibernate/hql/internal/ast/tree/FromClause;Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/type/CompositeType;)V
            areturn
        end local 1 // org.hibernate.type.CompositeType type
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    1     1  type  Lorg/hibernate/type/CompositeType;
    MethodParameters:
      Name  Flags
      type  

  org.hibernate.hql.internal.ast.tree.FromElement createElementJoin(org.hibernate.persister.collection.QueryableCollection);
    descriptor: (Lorg/hibernate/persister/collection/QueryableCollection;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=7, locals=17, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
         0: .line 299
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
         1: .line 300
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.inElementsFunction:Z
         2: .line 301
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 3 /* elementType */
        start local 3 // org.hibernate.type.Type elementType
         3: .line 302
            aload 3 /* elementType */
            invokeinterface org.hibernate.type.Type.isEntityType:()Z
            ifne 5
         4: .line 303
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot create element join for a collection of non-entities!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 305
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory org.hibernate.persister.collection.QueryableCollection top org.hibernate.type.Type
      StackMap stack:
            aload 0 /* this */
            aload 1 /* queryableCollection */
            putfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
         6: .line 306
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            astore 4 /* sfh */
        start local 4 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sfh
         7: .line 307
            aconst_null
            astore 5 /* destination */
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement destination
         8: .line 308
            aconst_null
            astore 6 /* tableAlias */
        start local 6 // java.lang.String tableAlias
         9: .line 309
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            astore 7 /* entityPersister */
        start local 7 // org.hibernate.persister.entity.EntityPersister entityPersister
        10: .line 310
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getAliasGenerator:()Lorg/hibernate/hql/internal/ast/util/AliasGenerator;
            aload 7 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.util.AliasGenerator.createName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* tableAlias */
        11: .line 311
            aload 7 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            astore 8 /* associatedEntityName */
        start local 8 // java.lang.String associatedEntityName
        12: .line 312
            aload 4 /* sfh */
            aload 8 /* associatedEntityName */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 9 /* targetEntityPersister */
        start local 9 // org.hibernate.persister.entity.EntityPersister targetEntityPersister
        13: .line 314
            aload 0 /* this */
        14: .line 315
            aload 8 /* associatedEntityName */
        15: .line 316
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
        16: .line 317
            aload 9 /* targetEntityPersister */
        17: .line 318
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
        18: .line 319
            aload 6 /* tableAlias */
        19: .line 314
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createAndAddFromElement:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 5 /* destination */
        20: .line 322
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifeq 22
        21: .line 323
            aload 5 /* destination */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setIncludeSubclasses:(Z)V
        22: .line 325
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory org.hibernate.persister.collection.QueryableCollection top org.hibernate.type.Type org.hibernate.hql.internal.ast.util.SessionFactoryHelper org.hibernate.hql.internal.ast.tree.FromElement java.lang.String org.hibernate.persister.entity.EntityPersister java.lang.String org.hibernate.persister.entity.EntityPersister
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 5 /* destination */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.addCollectionJoinFromElementByPath:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
        23: .line 328
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 7 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getQuerySpaces:()[Ljava/io/Serializable;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.addQuerySpaces:([Ljava/io/Serializable;)V
        24: .line 330
            aload 1 /* queryableCollection */
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getCollectionType:()Lorg/hibernate/type/CollectionType;
            astore 10 /* type */
        start local 10 // org.hibernate.type.CollectionType type
        25: .line 331
            aload 10 /* type */
            invokevirtual org.hibernate.type.CollectionType.getRole:()Ljava/lang/String;
            astore 11 /* role */
        start local 11 // java.lang.String role
        26: .line 332
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            astore 12 /* roleAlias */
        start local 12 // java.lang.String roleAlias
        27: .line 334
            aload 4 /* sfh */
            aload 11 /* role */
            aload 12 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getCollectionElementColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 13 /* targetColumns */
        start local 13 // java.lang.String[] targetColumns
        28: .line 335
            aload 4 /* sfh */
            aload 10 /* type */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getElementAssociationType:(Lorg/hibernate/type/CollectionType;)Lorg/hibernate/type/AssociationType;
            astore 14 /* elementAssociationType */
        start local 14 // org.hibernate.type.AssociationType elementAssociationType
        29: .line 338
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            astore 15 /* joinType */
        start local 15 // org.hibernate.sql.JoinType joinType
        30: .line 339
            aload 4 /* sfh */
        31: .line 340
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
        32: .line 341
            aload 14 /* elementAssociationType */
        33: .line 342
            aload 6 /* tableAlias */
        34: .line 343
            aload 15 /* joinType */
        35: .line 344
            aload 13 /* targetColumns */
        36: .line 339
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createJoinSequence:(ZLorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 16 /* joinSequence */
        start local 16 // org.hibernate.engine.internal.JoinSequence joinSequence
        37: .line 346
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 5 /* destination */
            aload 16 /* joinSequence */
            aload 13 /* targetColumns */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.initializeJoin:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Lorg/hibernate/engine/internal/JoinSequence;[Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* elem */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement elem
        38: .line 347
            aload 2 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseFromFragment:(Z)V
        39: .line 348
            aload 2 /* elem */
            aload 12 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setCollectionTableAlias:(Ljava/lang/String;)V
        40: .line 349
            aload 2 /* elem */
            areturn
        end local 16 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 15 // org.hibernate.sql.JoinType joinType
        end local 14 // org.hibernate.type.AssociationType elementAssociationType
        end local 13 // java.lang.String[] targetColumns
        end local 12 // java.lang.String roleAlias
        end local 11 // java.lang.String role
        end local 10 // org.hibernate.type.CollectionType type
        end local 9 // org.hibernate.persister.entity.EntityPersister targetEntityPersister
        end local 8 // java.lang.String associatedEntityName
        end local 7 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 6 // java.lang.String tableAlias
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement destination
        end local 4 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sfh
        end local 3 // org.hibernate.type.Type elementType
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 1 // org.hibernate.persister.collection.QueryableCollection queryableCollection
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   41     0                    this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   41     1     queryableCollection  Lorg/hibernate/persister/collection/QueryableCollection;
           38   41     2                    elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            3   41     3             elementType  Lorg/hibernate/type/Type;
            7   41     4                     sfh  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            8   41     5             destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            9   41     6              tableAlias  Ljava/lang/String;
           10   41     7         entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
           12   41     8    associatedEntityName  Ljava/lang/String;
           13   41     9   targetEntityPersister  Lorg/hibernate/persister/entity/EntityPersister;
           25   41    10                    type  Lorg/hibernate/type/CollectionType;
           26   41    11                    role  Ljava/lang/String;
           27   41    12               roleAlias  Ljava/lang/String;
           28   41    13           targetColumns  [Ljava/lang/String;
           29   41    14  elementAssociationType  Lorg/hibernate/type/AssociationType;
           30   41    15                joinType  Lorg/hibernate/sql/JoinType;
           37   41    16            joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                     Name  Flags
      queryableCollection  

  private org.hibernate.hql.internal.ast.tree.FromElement createCollectionJoin(org.hibernate.engine.internal.JoinSequence, java.lang.String);
    descriptor: (Lorg/hibernate/engine/internal/JoinSequence;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.engine.internal.JoinSequence collectionJoinSequence
        start local 2 // java.lang.String tableAlias
         0: .line 354
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getTableName:()Ljava/lang/String;
            astore 3 /* text */
        start local 3 // java.lang.String text
         1: .line 355
            aload 0 /* this */
            aload 3 /* text */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createFromElement:(Ljava/lang/String;)Lantlr/collections/AST;
            astore 4 /* ast */
        start local 4 // antlr.collections.AST ast
         2: .line 356
            aload 4 /* ast */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 5 /* destination */
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement destination
         3: .line 357
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            astore 6 /* elementType */
        start local 6 // org.hibernate.type.Type elementType
         4: .line 358
            aload 6 /* elementType */
            invokeinterface org.hibernate.type.Type.isCollectionType:()Z
            ifeq 6
         5: .line 359
            new antlr.SemanticException
            dup
            ldc "Collections of collections are not supported!"
            invokespecial antlr.SemanticException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 361
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory org.hibernate.engine.internal.JoinSequence java.lang.String java.lang.String antlr.collections.AST org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.type.Type
      StackMap stack:
            aload 5 /* destination */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
            aload 2 /* tableAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.initializeCollection:(Lorg/hibernate/hql/internal/ast/tree/FromClause;Ljava/lang/String;Ljava/lang/String;)V
         7: .line 362
            aload 5 /* destination */
            sipush 139
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setType:(I)V
         8: .line 363
            aload 5 /* destination */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setIncludeSubclasses:(Z)V
         9: .line 364
            aload 5 /* destination */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setCollectionJoin:(Z)V
        10: .line 365
            aload 5 /* destination */
            aload 1 /* collectionJoinSequence */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setJoinSequence:(Lorg/hibernate/engine/internal/JoinSequence;)V
        11: .line 366
            aload 5 /* destination */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setOrigin:(Lorg/hibernate/hql/internal/ast/tree/FromElement;Z)V
        12: .line 367
            aload 5 /* destination */
            aload 2 /* tableAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setCollectionTableAlias:(Ljava/lang/String;)V
        13: .line 371
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ldc ""
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setText:(Ljava/lang/String;)V
        14: .line 372
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setCollectionJoin:(Z)V
        15: .line 373
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 5 /* destination */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.addCollectionJoinFromElementByPath:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
        16: .line 374
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getCollectionSpaces:()[Ljava/io/Serializable;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.addQuerySpaces:([Ljava/io/Serializable;)V
        17: .line 375
            aload 5 /* destination */
            areturn
        end local 6 // org.hibernate.type.Type elementType
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement destination
        end local 4 // antlr.collections.AST ast
        end local 3 // java.lang.String text
        end local 2 // java.lang.String tableAlias
        end local 1 // org.hibernate.engine.internal.JoinSequence collectionJoinSequence
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   18     0                    this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   18     1  collectionJoinSequence  Lorg/hibernate/engine/internal/JoinSequence;
            0   18     2              tableAlias  Ljava/lang/String;
            1   18     3                    text  Ljava/lang/String;
            2   18     4                     ast  Lantlr/collections/AST;
            3   18     5             destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            4   18     6             elementType  Lorg/hibernate/type/Type;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                        Name  Flags
      collectionJoinSequence  
      tableAlias              

  private org.hibernate.hql.internal.ast.tree.FromElement createEntityAssociation(java.lang.String, java.lang.String, org.hibernate.sql.JoinType);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String role
        start local 2 // java.lang.String roleAlias
        start local 3 // org.hibernate.sql.JoinType joinType
         0: .line 383
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementPersister:()Lorg/hibernate/persister/entity/EntityPersister;
            checkcast org.hibernate.persister.entity.Queryable
            astore 5 /* entityPersister */
        start local 5 // org.hibernate.persister.entity.Queryable entityPersister
         1: .line 384
            aload 5 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.Queryable.getEntityName:()Ljava/lang/String;
            astore 6 /* associatedEntityName */
        start local 6 // java.lang.String associatedEntityName
         2: .line 386
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.isOneToMany:()Z
            ifeq 18
         3: .line 387
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         4: .line 388
            ldc "createEntityAssociation() : One to many - path = %s role = %s associatedEntityName = %s"
         5: .line 389
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
         6: .line 390
            aload 1 /* role */
         7: .line 391
            aload 6 /* associatedEntityName */
         8: .line 387
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 393
            aload 0 /* this */
            aload 2 /* roleAlias */
            aload 3 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoinSequence:(Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 7 /* joinSequence */
        start local 7 // org.hibernate.engine.internal.JoinSequence joinSequence
        10: .line 395
            aload 0 /* this */
        11: .line 396
            aload 6 /* associatedEntityName */
        12: .line 397
            aload 2 /* roleAlias */
        13: .line 398
            aload 7 /* joinSequence */
        14: .line 399
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
        15: .line 400
            iconst_0
        16: .line 395
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoin:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/type/EntityType;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 4 /* elem */
        end local 7 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 4 // org.hibernate.hql.internal.ast.tree.FromElement elem
        17: .line 402
            goto 29
        end local 4 // org.hibernate.hql.internal.ast.tree.FromElement elem
        18: .line 404
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String java.lang.String org.hibernate.sql.JoinType top org.hibernate.persister.entity.Queryable java.lang.String
      StackMap stack:
            getstatic org.hibernate.hql.internal.ast.tree.FromElementFactory.LOG:Lorg/hibernate/internal/CoreMessageLogger;
        19: .line 405
            ldc "createManyToMany() : path = %s role = %s associatedEntityName = %s"
        20: .line 406
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
        21: .line 407
            aload 1 /* role */
        22: .line 408
            aload 6 /* associatedEntityName */
        23: .line 404
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        24: .line 410
            aload 0 /* this */
        25: .line 411
            aload 1 /* role */
            aload 6 /* associatedEntityName */
        26: .line 412
            aload 2 /* roleAlias */
            aload 5 /* entityPersister */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getElementType:()Lorg/hibernate/type/Type;
            checkcast org.hibernate.type.EntityType
            aload 3 /* joinType */
        27: .line 410
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createManyToMany:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/type/EntityType;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 4 /* elem */
        start local 4 // org.hibernate.hql.internal.ast.tree.FromElement elem
        28: .line 414
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getWalker:()Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.queryableCollection:Lorg/hibernate/persister/collection/QueryableCollection;
            invokeinterface org.hibernate.persister.collection.QueryableCollection.getCollectionSpaces:()[Ljava/io/Serializable;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.addQuerySpaces:([Ljava/io/Serializable;)V
        29: .line 416
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String java.lang.String org.hibernate.sql.JoinType org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.persister.entity.Queryable java.lang.String
      StackMap stack:
            aload 4 /* elem */
            aload 2 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setCollectionTableAlias:(Ljava/lang/String;)V
        30: .line 417
            aload 4 /* elem */
            areturn
        end local 6 // java.lang.String associatedEntityName
        end local 5 // org.hibernate.persister.entity.Queryable entityPersister
        end local 4 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 3 // org.hibernate.sql.JoinType joinType
        end local 2 // java.lang.String roleAlias
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   31     0                  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   31     1                  role  Ljava/lang/String;
            0   31     2             roleAlias  Ljava/lang/String;
            0   31     3              joinType  Lorg/hibernate/sql/JoinType;
           17   18     4                  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           28   31     4                  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            1   31     5       entityPersister  Lorg/hibernate/persister/entity/Queryable;
            2   31     6  associatedEntityName  Ljava/lang/String;
           10   17     7          joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
           Name  Flags
      role       
      roleAlias  
      joinType   

  private org.hibernate.hql.internal.ast.tree.FromElement createJoin(java.lang.String, java.lang.String, org.hibernate.engine.internal.JoinSequence, org.hibernate.type.EntityType, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/type/EntityType;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String entityClass
        start local 2 // java.lang.String tableAlias
        start local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 4 // org.hibernate.type.EntityType type
        start local 5 // boolean manyToMany
         0: .line 427
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            aload 1 /* entityClass */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister:(Ljava/lang/String;)Lorg/hibernate/persister/entity/EntityPersister;
            astore 6 /* entityPersister */
        start local 6 // org.hibernate.persister.entity.EntityPersister entityPersister
         1: .line 428
            aload 0 /* this */
         2: .line 429
            aload 1 /* entityClass */
         3: .line 430
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.classAlias:Ljava/lang/String;
         4: .line 431
            aload 6 /* entityPersister */
         5: .line 432
            aload 4 /* type */
         6: .line 433
            aload 2 /* tableAlias */
         7: .line 428
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createAndAddFromElement:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 7 /* destination */
        start local 7 // org.hibernate.hql.internal.ast.tree.FromElement destination
         8: .line 435
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.path:Ljava/lang/String;
            aload 7 /* destination */
            aload 3 /* joinSequence */
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.getColumns:()[Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.origin:Lorg/hibernate/hql/internal/ast/tree/FromElement;
            iload 5 /* manyToMany */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.initializeJoin:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Lorg/hibernate/engine/internal/JoinSequence;[Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 7 // org.hibernate.hql.internal.ast.tree.FromElement destination
        end local 6 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 5 // boolean manyToMany
        end local 4 // org.hibernate.type.EntityType type
        end local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 2 // java.lang.String tableAlias
        end local 1 // java.lang.String entityClass
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    9     1      entityClass  Ljava/lang/String;
            0    9     2       tableAlias  Ljava/lang/String;
            0    9     3     joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
            0    9     4             type  Lorg/hibernate/type/EntityType;
            0    9     5       manyToMany  Z
            1    9     6  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            8    9     7      destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
              Name  Flags
      entityClass   
      tableAlias    
      joinSequence  
      type          
      manyToMany    

  private org.hibernate.hql.internal.ast.tree.FromElement createManyToMany(java.lang.String, java.lang.String, java.lang.String, org.hibernate.persister.entity.Queryable, org.hibernate.type.EntityType, org.hibernate.sql.JoinType);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/Queryable;Lorg/hibernate/type/EntityType;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=7
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String role
        start local 2 // java.lang.String associatedEntityName
        start local 3 // java.lang.String roleAlias
        start local 4 // org.hibernate.persister.entity.Queryable entityPersister
        start local 5 // org.hibernate.type.EntityType type
        start local 6 // org.hibernate.sql.JoinType joinType
         0: .line 446
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            astore 8 /* sfh */
        start local 8 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sfh
         1: .line 447
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.inElementsFunction:Z
            ifeq 5
         2: .line 449
            aload 0 /* this */
            aload 3 /* roleAlias */
            aload 6 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoinSequence:(Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 9 /* joinSequence */
        start local 9 // org.hibernate.engine.internal.JoinSequence joinSequence
         3: .line 450
            aload 0 /* this */
            aload 2 /* associatedEntityName */
            aload 3 /* roleAlias */
            aload 9 /* joinSequence */
            aload 5 /* type */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoin:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/type/EntityType;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 7 /* elem */
        end local 9 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 7 // org.hibernate.hql.internal.ast.tree.FromElement elem
         4: .line 451
            goto 16
        end local 7 // org.hibernate.hql.internal.ast.tree.FromElement elem
         5: .line 456
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String java.lang.String java.lang.String org.hibernate.persister.entity.Queryable org.hibernate.type.EntityType org.hibernate.sql.JoinType top org.hibernate.hql.internal.ast.util.SessionFactoryHelper
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getAliasGenerator:()Lorg/hibernate/hql/internal/ast/util/AliasGenerator;
            aload 4 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.Queryable.getEntityName:()Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.util.AliasGenerator.createName:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* tableAlias */
        start local 9 // java.lang.String tableAlias
         6: .line 457
            aload 8 /* sfh */
            aload 1 /* role */
            aload 3 /* roleAlias */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getCollectionElementColumns:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 10 /* secondJoinColumns */
        start local 10 // java.lang.String[] secondJoinColumns
         7: .line 459
            aload 0 /* this */
            aload 3 /* roleAlias */
            aload 6 /* joinType */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoinSequence:(Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
            astore 11 /* joinSequence */
        start local 11 // org.hibernate.engine.internal.JoinSequence joinSequence
         8: .line 460
            aload 11 /* joinSequence */
         9: .line 461
            aload 8 /* sfh */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collectionType:Lorg/hibernate/type/CollectionType;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getElementAssociationType:(Lorg/hibernate/type/CollectionType;)Lorg/hibernate/type/AssociationType;
        10: .line 462
            aload 9 /* tableAlias */
        11: .line 463
            aload 6 /* joinType */
        12: .line 464
            aload 10 /* secondJoinColumns */
        13: .line 460
            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
        14: .line 466
            aload 0 /* this */
            aload 2 /* associatedEntityName */
            aload 9 /* tableAlias */
            aload 11 /* joinSequence */
            aload 5 /* type */
            iconst_0
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createJoin:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/type/EntityType;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 7 /* elem */
        start local 7 // org.hibernate.hql.internal.ast.tree.FromElement elem
        15: .line 467
            aload 7 /* elem */
            iconst_1
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setUseFromFragment:(Z)V
        end local 11 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 10 // java.lang.String[] secondJoinColumns
        end local 9 // java.lang.String tableAlias
        16: .line 469
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String java.lang.String java.lang.String org.hibernate.persister.entity.Queryable org.hibernate.type.EntityType org.hibernate.sql.JoinType org.hibernate.hql.internal.ast.tree.FromElement org.hibernate.hql.internal.ast.util.SessionFactoryHelper
      StackMap stack:
            aload 7 /* elem */
            areturn
        end local 8 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sfh
        end local 7 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 6 // org.hibernate.sql.JoinType joinType
        end local 5 // org.hibernate.type.EntityType type
        end local 4 // org.hibernate.persister.entity.Queryable entityPersister
        end local 3 // java.lang.String roleAlias
        end local 2 // java.lang.String associatedEntityName
        end local 1 // java.lang.String role
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0   17     1                  role  Ljava/lang/String;
            0   17     2  associatedEntityName  Ljava/lang/String;
            0   17     3             roleAlias  Ljava/lang/String;
            0   17     4       entityPersister  Lorg/hibernate/persister/entity/Queryable;
            0   17     5                  type  Lorg/hibernate/type/EntityType;
            0   17     6              joinType  Lorg/hibernate/sql/JoinType;
            4    5     7                  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           15   17     7                  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            1   17     8                   sfh  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            3    4     9          joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
            6   16     9            tableAlias  Ljava/lang/String;
            7   16    10     secondJoinColumns  [Ljava/lang/String;
            8   16    11          joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
                      Name  Flags
      role                  
      associatedEntityName  
      roleAlias             
      entityPersister       
      type                  
      joinType              

  private org.hibernate.engine.internal.JoinSequence createJoinSequence(java.lang.String, org.hibernate.sql.JoinType);
    descriptor: (Ljava/lang/String;Lorg/hibernate/sql/JoinType;)Lorg/hibernate/engine/internal/JoinSequence;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String roleAlias
        start local 2 // org.hibernate.sql.JoinType joinType
         0: .line 473
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            astore 3 /* sessionFactoryHelper */
        start local 3 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sessionFactoryHelper
         1: .line 474
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.getColumns:()[Ljava/lang/String;
            astore 4 /* joinColumns */
        start local 4 // java.lang.String[] joinColumns
         2: .line 475
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collectionType:Lorg/hibernate/type/CollectionType;
            ifnonnull 4
         3: .line 476
            new java.lang.IllegalStateException
            dup
            ldc "collectionType is null!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 478
      StackMap locals: org.hibernate.hql.internal.ast.util.SessionFactoryHelper java.lang.String[]
      StackMap stack:
            aload 3 /* sessionFactoryHelper */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.collectionType:Lorg/hibernate/type/CollectionType;
            aload 1 /* roleAlias */
            aload 2 /* joinType */
            aload 4 /* joinColumns */
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.createJoinSequence:(ZLorg/hibernate/type/AssociationType;Ljava/lang/String;Lorg/hibernate/sql/JoinType;[Ljava/lang/String;)Lorg/hibernate/engine/internal/JoinSequence;
            areturn
        end local 4 // java.lang.String[] joinColumns
        end local 3 // org.hibernate.hql.internal.ast.util.SessionFactoryHelper sessionFactoryHelper
        end local 2 // org.hibernate.sql.JoinType joinType
        end local 1 // java.lang.String roleAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    5     0                  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    5     1             roleAlias  Ljava/lang/String;
            0    5     2              joinType  Lorg/hibernate/sql/JoinType;
            1    5     3  sessionFactoryHelper  Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            2    5     4           joinColumns  [Ljava/lang/String;
    MethodParameters:
           Name  Flags
      roleAlias  
      joinType   

  private org.hibernate.hql.internal.ast.tree.FromElement createAndAddFromElement(java.lang.String, java.lang.String, org.hibernate.persister.entity.EntityPersister, org.hibernate.type.EntityType, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String className
        start local 2 // java.lang.String classAlias
        start local 3 // org.hibernate.persister.entity.EntityPersister entityPersister
        start local 4 // org.hibernate.type.EntityType type
        start local 5 // java.lang.String tableAlias
         0: .line 487
            aload 3 /* entityPersister */
            instanceof org.hibernate.persister.entity.Joinable
            ifne 2
         1: .line 488
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "EntityPersister "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* entityPersister */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not implement Joinable!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* entityPersister */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createFromElement:(Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 6 /* element */
        start local 6 // org.hibernate.hql.internal.ast.tree.FromElement element
         3: .line 491
            aload 0 /* this */
            aload 6 /* element */
            aload 1 /* className */
            aload 2 /* classAlias */
            aload 3 /* entityPersister */
            aload 4 /* type */
            aload 5 /* tableAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.initializeAndAddFromElement:(Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)V
         4: .line 492
            aload 6 /* element */
            areturn
        end local 6 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 5 // java.lang.String tableAlias
        end local 4 // org.hibernate.type.EntityType type
        end local 3 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 2 // java.lang.String classAlias
        end local 1 // java.lang.String className
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    5     1        className  Ljava/lang/String;
            0    5     2       classAlias  Ljava/lang/String;
            0    5     3  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            0    5     4             type  Lorg/hibernate/type/EntityType;
            0    5     5       tableAlias  Ljava/lang/String;
            3    5     6          element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
                 Name  Flags
      className        
      classAlias       
      entityPersister  
      type             
      tableAlias       

  private void initializeAndAddFromElement(org.hibernate.hql.internal.ast.tree.FromElement, java.lang.String, java.lang.String, org.hibernate.persister.entity.EntityPersister, org.hibernate.type.EntityType, java.lang.String);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromElement;Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
        start local 2 // java.lang.String className
        start local 3 // java.lang.String classAlias
        start local 4 // org.hibernate.persister.entity.EntityPersister entityPersister
        start local 5 // org.hibernate.type.EntityType type
        start local 6 // java.lang.String tableAlias
         0: .line 502
            aload 6 /* tableAlias */
            ifnonnull 3
         1: .line 503
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getAliasGenerator:()Lorg/hibernate/hql/internal/ast/util/AliasGenerator;
            astore 7 /* aliasGenerator */
        start local 7 // org.hibernate.hql.internal.ast.util.AliasGenerator aliasGenerator
         2: .line 504
            aload 7 /* aliasGenerator */
            aload 4 /* entityPersister */
            invokeinterface org.hibernate.persister.entity.EntityPersister.getEntityName:()Ljava/lang/String;
            invokevirtual org.hibernate.hql.internal.ast.util.AliasGenerator.createName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* tableAlias */
        end local 7 // org.hibernate.hql.internal.ast.util.AliasGenerator aliasGenerator
         3: .line 506
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 2 /* className */
            aload 4 /* entityPersister */
            aload 5 /* type */
            aload 3 /* classAlias */
            aload 6 /* tableAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.initializeEntity:(Lorg/hibernate/hql/internal/ast/tree/FromClause;Ljava/lang/String;Lorg/hibernate/persister/entity/EntityPersister;Lorg/hibernate/type/EntityType;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 507
            return
        end local 6 // java.lang.String tableAlias
        end local 5 // org.hibernate.type.EntityType type
        end local 4 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 3 // java.lang.String classAlias
        end local 2 // java.lang.String className
        end local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    5     1          element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0    5     2        className  Ljava/lang/String;
            0    5     3       classAlias  Ljava/lang/String;
            0    5     4  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            0    5     5             type  Lorg/hibernate/type/EntityType;
            0    5     6       tableAlias  Ljava/lang/String;
            2    3     7   aliasGenerator  Lorg/hibernate/hql/internal/ast/util/AliasGenerator;
    MethodParameters:
                 Name  Flags
      element          
      className        
      classAlias       
      entityPersister  
      type             
      tableAlias       

  private org.hibernate.hql.internal.ast.tree.FromElement createFromElement(org.hibernate.persister.entity.EntityPersister);
    descriptor: (Lorg/hibernate/persister/entity/EntityPersister;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // org.hibernate.persister.entity.EntityPersister entityPersister
         0: .line 510
            aload 1 /* entityPersister */
            checkcast org.hibernate.persister.entity.Joinable
            astore 2 /* joinable */
        start local 2 // org.hibernate.persister.entity.Joinable joinable
         1: .line 511
            aload 2 /* joinable */
            invokeinterface org.hibernate.persister.entity.Joinable.getTableName:()Ljava/lang/String;
            astore 3 /* text */
        start local 3 // java.lang.String text
         2: .line 512
            aload 0 /* this */
            aload 3 /* text */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.createFromElement:(Ljava/lang/String;)Lantlr/collections/AST;
            astore 4 /* ast */
        start local 4 // antlr.collections.AST ast
         3: .line 513
            aload 4 /* ast */
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 5 /* element */
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement element
         4: .line 514
            aload 5 /* element */
            areturn
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 4 // antlr.collections.AST ast
        end local 3 // java.lang.String text
        end local 2 // org.hibernate.persister.entity.Joinable joinable
        end local 1 // org.hibernate.persister.entity.EntityPersister entityPersister
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    5     1  entityPersister  Lorg/hibernate/persister/entity/EntityPersister;
            1    5     2         joinable  Lorg/hibernate/persister/entity/Joinable;
            2    5     3             text  Ljava/lang/String;
            3    5     4              ast  Lantlr/collections/AST;
            4    5     5          element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
                 Name  Flags
      entityPersister  

  private antlr.collections.AST createFromElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Lantlr/collections/AST;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String text
         0: .line 519
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getASTFactory:()Lantlr/ASTFactory;
         1: .line 520
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.implied:Z
            ifeq 2
            sipush 138
            goto 3
      StackMap locals:
      StackMap stack: antlr.ASTFactory
         2: sipush 137
         3: .line 521
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElementFactory java.lang.String
      StackMap stack: antlr.ASTFactory int
            aload 1 /* text */
         4: .line 518
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.create:(Lantlr/ASTFactory;ILjava/lang/String;)Lantlr/collections/AST;
            astore 2 /* ast */
        start local 2 // antlr.collections.AST ast
         5: .line 526
            aload 2 /* ast */
            sipush 137
            invokeinterface antlr.collections.AST.setType:(I)V
         6: .line 527
            aload 2 /* ast */
            areturn
        end local 2 // antlr.collections.AST ast
        end local 1 // java.lang.String text
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    7     1  text  Ljava/lang/String;
            5    7     2   ast  Lantlr/collections/AST;
    MethodParameters:
      Name  Flags
      text  

  private org.hibernate.hql.internal.ast.tree.FromElement initializeJoin(java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement, org.hibernate.engine.internal.JoinSequence, java.lang.String[], org.hibernate.hql.internal.ast.tree.FromElement, boolean);
    descriptor: (Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Lorg/hibernate/engine/internal/JoinSequence;[Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;Z)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
        start local 1 // java.lang.String path
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement destination
        start local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        start local 4 // java.lang.String[] columns
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement origin
        start local 6 // boolean manyToMany
         0: .line 537
            aload 2 /* destination */
            sipush 139
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setType:(I)V
         1: .line 538
            aload 2 /* destination */
            aload 3 /* joinSequence */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setJoinSequence:(Lorg/hibernate/engine/internal/JoinSequence;)V
         2: .line 539
            aload 2 /* destination */
            aload 4 /* columns */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setColumns:([Ljava/lang/String;)V
         3: .line 540
            aload 2 /* destination */
            aload 5 /* origin */
            iload 6 /* manyToMany */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setOrigin:(Lorg/hibernate/hql/internal/ast/tree/FromElement;Z)V
         4: .line 541
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.fromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 1 /* path */
            aload 2 /* destination */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.addJoinByPathMap:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
         5: .line 542
            aload 2 /* destination */
            areturn
        end local 6 // boolean manyToMany
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement origin
        end local 4 // java.lang.String[] columns
        end local 3 // org.hibernate.engine.internal.JoinSequence joinSequence
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement destination
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
            0    6     1          path  Ljava/lang/String;
            0    6     2   destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0    6     3  joinSequence  Lorg/hibernate/engine/internal/JoinSequence;
            0    6     4       columns  [Ljava/lang/String;
            0    6     5        origin  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            0    6     6    manyToMany  Z
    MethodParameters:
              Name  Flags
      path          
      destination   
      joinSequence  
      columns       
      origin        
      manyToMany    

  private java.lang.String[] getColumns();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
         0: .line 546
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.columns:[Ljava/lang/String;
            ifnonnull 2
         1: .line 547
            new java.lang.IllegalStateException
            dup
            ldc "No foriegn key columns were supplied!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromElementFactory.columns:[Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromElementFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
}
SourceFile: "FromElementFactory.java"