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

  public static final int ROOT_LEVEL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private int level;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<org.hibernate.hql.internal.ast.tree.FromElement> fromElements;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/hibernate/hql/internal/ast/tree/FromElement;>;

  private java.util.Map<java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement> fromElementByClassAlias;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;>;

  private java.util.Map<java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement> fromElementByTableAlias;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;>;

  private java.util.Map<java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement> fromElementsByPath;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;>;

  private java.util.Map collectionJoinFromElementsByPath;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.Set<org.hibernate.hql.internal.ast.tree.FromClause> childFromClauses;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/hibernate/hql/internal/ast/tree/FromClause;>;

  private int fromElementCounter;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.List impliedElements;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<org.hibernate.hql.internal.ast.tree.EntityJoinFromElement> entityJoinFromElements;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/hibernate/hql/internal/ast/tree/EntityJoinFromElement;>;

  private static org.hibernate.hql.internal.ast.util.ASTUtil$FilterPredicate fromElementPredicate;
    descriptor: Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.hibernate.hql.internal.ast.util.ASTUtil$FilterPredicate projectionListPredicate;
    descriptor: Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.hibernate.hql.internal.ast.util.ASTUtil$FilterPredicate collectionFetchPredicate;
    descriptor: Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.hibernate.hql.internal.ast.util.ASTUtil$FilterPredicate explicitFromPredicate;
    descriptor: Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 32
            ldc Lorg/hibernate/hql/internal/ast/tree/FromClause;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.hql.internal.ast.tree.FromClause.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 232
            new org.hibernate.hql.internal.ast.tree.FromClause$1
            dup
            invokespecial org.hibernate.hql.internal.ast.tree.FromClause$1.<init>:()V
            putstatic org.hibernate.hql.internal.ast.tree.FromClause.fromElementPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
         2: .line 240
            new org.hibernate.hql.internal.ast.tree.FromClause$2
            dup
            invokespecial org.hibernate.hql.internal.ast.tree.FromClause$2.<init>:()V
            putstatic org.hibernate.hql.internal.ast.tree.FromClause.projectionListPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
         3: .line 248
            new org.hibernate.hql.internal.ast.tree.FromClause$3
            dup
            invokespecial org.hibernate.hql.internal.ast.tree.FromClause$3.<init>:()V
            putstatic org.hibernate.hql.internal.ast.tree.FromClause.collectionFetchPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
         4: .line 256
            new org.hibernate.hql.internal.ast.tree.FromClause$4
            dup
            invokespecial org.hibernate.hql.internal.ast.tree.FromClause$4.<init>:()V
            putstatic org.hibernate.hql.internal.ast.tree.FromClause.explicitFromPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
         5: .line 262
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 31
            aload 0 /* this */
            invokespecial org.hibernate.hql.internal.ast.tree.HqlSqlWalkerNode.<init>:()V
         1: .line 36
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.hql.internal.ast.tree.FromClause.level:I
         2: .line 37
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.fromElements:Ljava/util/Set;
         3: .line 38
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
         4: .line 39
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByTableAlias:Ljava/util/Map;
         5: .line 40
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementsByPath:Ljava/util/Map;
         6: .line 46
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.collectionJoinFromElementsByPath:Ljava/util/Map;
         7: .line 62
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.impliedElements:Ljava/util/List;
         8: .line 31
            return
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public org.hibernate.hql.internal.ast.tree.FromElement addFromElement(java.lang.String, antlr.collections.AST);
    descriptor: (Ljava/lang/String;Lantlr/collections/AST;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
        start local 2 // antlr.collections.AST alias
         0: .line 76
            aload 2 /* alias */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* alias */
            invokeinterface antlr.collections.AST.getText:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* classAlias */
        start local 3 // java.lang.String classAlias
         3: .line 77
            aload 0 /* this */
            aload 3 /* classAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.checkForDuplicateClassAlias:(Ljava/lang/String;)V
         4: .line 78
            new org.hibernate.hql.internal.ast.tree.FromElementFactory
            dup
            aload 0 /* this */
            aconst_null
            aload 1 /* path */
            aload 3 /* classAlias */
            aconst_null
            iconst_0
            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;Ljava/lang/String;[Ljava/lang/String;Z)V
            astore 4 /* factory */
        start local 4 // org.hibernate.hql.internal.ast.tree.FromElementFactory factory
         5: .line 79
            aload 4 /* factory */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement:()Lorg/hibernate/hql/internal/ast/tree/FromElement;
            areturn
        end local 4 // org.hibernate.hql.internal.ast.tree.FromElementFactory factory
        end local 3 // java.lang.String classAlias
        end local 2 // antlr.collections.AST alias
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     1        path  Ljava/lang/String;
            0    6     2       alias  Lantlr/collections/AST;
            3    6     3  classAlias  Ljava/lang/String;
            5    6     4     factory  Lorg/hibernate/hql/internal/ast/tree/FromElementFactory;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
       Name  Flags
      path   
      alias  

  void registerFromElement(org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
         0: .line 83
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElements:Ljava/util/Set;
            aload 1 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 84
            aload 1 /* element */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getClassAlias:()Ljava/lang/String;
            astore 2 /* classAlias */
        start local 2 // java.lang.String classAlias
         2: .line 85
            aload 2 /* classAlias */
            ifnull 4
         3: .line 87
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            aload 2 /* classAlias */
            aload 1 /* element */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 90
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* element */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getTableAlias:()Ljava/lang/String;
            astore 3 /* tableAlias */
        start local 3 // java.lang.String tableAlias
         5: .line 91
            aload 3 /* tableAlias */
            ifnull 7
         6: .line 92
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByTableAlias:Ljava/util/Map;
            aload 3 /* tableAlias */
            aload 1 /* element */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 95
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* element */
            instanceof org.hibernate.hql.internal.ast.tree.EntityJoinFromElement
            ifeq 11
         8: .line 96
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
            ifnonnull 10
         9: .line 97
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
        10: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
            aload 1 /* element */
            checkcast org.hibernate.hql.internal.ast.tree.EntityJoinFromElement
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 101
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String tableAlias
        end local 2 // java.lang.String classAlias
        end local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0   12     1     element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            2   12     2  classAlias  Ljava/lang/String;
            5   12     3  tableAlias  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      element  

  public void finishInit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 104
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
            ifnonnull 2
         1: .line 105
            return
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 5
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.EntityJoinFromElement
            astore 1 /* entityJoinFromElement */
        start local 1 // org.hibernate.hql.internal.ast.tree.EntityJoinFromElement entityJoinFromElement
         4: .line 109
            aload 0 /* this */
            aload 1 /* entityJoinFromElement */
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.appendChild:(Lantlr/collections/AST;Lantlr/collections/AST;)V
        end local 1 // org.hibernate.hql.internal.ast.tree.EntityJoinFromElement entityJoinFromElement
         5: .line 108
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 112
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.entityJoinFromElements:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         7: .line 113
            return
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            4    5     1  entityJoinFromElement  Lorg/hibernate/hql/internal/ast/tree/EntityJoinFromElement;

  void addDuplicateAlias(java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String alias
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement element
         0: .line 116
            aload 1 /* alias */
            ifnull 2
         1: .line 117
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            aload 1 /* alias */
            aload 2 /* element */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    3     1    alias  Ljava/lang/String;
            0    3     2  element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
         Name  Flags
      alias    
      element  

  private void checkForDuplicateClassAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String classAlias
         0: .line 122
            aload 1 /* classAlias */
            ifnull 2
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            aload 1 /* classAlias */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 123
            new antlr.SemanticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Duplicate definition of alias '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* classAlias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial antlr.SemanticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String classAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    3     1  classAlias  Ljava/lang/String;
    Exceptions:
      throws antlr.SemanticException
    MethodParameters:
            Name  Flags
      classAlias  

  public org.hibernate.hql.internal.ast.tree.FromElement getFromElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String aliasOrClassName
         0: .line 135
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            aload 1 /* aliasOrClassName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 2 /* fromElement */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         1: .line 136
            aload 2 /* fromElement */
            ifnonnull 3
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.isStrictJPAQLComplianceEnabled:()Z
            ifeq 3
         2: .line 137
            aload 0 /* this */
            aload 1 /* aliasOrClassName */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* fromElement */
         3: .line 139
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 2 /* fromElement */
            ifnonnull 5
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            ifnull 5
         4: .line 140
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 1 /* aliasOrClassName */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* fromElement */
         5: .line 142
      StackMap locals:
      StackMap stack:
            aload 2 /* fromElement */
            areturn
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 1 // java.lang.String aliasOrClassName
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     1  aliasOrClassName  Ljava/lang/String;
            1    6     2       fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
                  Name  Flags
      aliasOrClassName  

  public org.hibernate.hql.internal.ast.tree.FromElement findFromElementBySqlAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String sqlAlias
         0: .line 146
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByTableAlias:Ljava/util/Map;
            aload 1 /* sqlAlias */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 2 /* fromElement */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         1: .line 147
            aload 2 /* fromElement */
            ifnonnull 3
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            ifnull 3
         2: .line 148
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 1 /* sqlAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* fromElement */
         3: .line 150
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 2 /* fromElement */
            areturn
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 1 // java.lang.String sqlAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    4     1     sqlAlias  Ljava/lang/String;
            1    4     2  fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
          Name  Flags
      sqlAlias  

  public org.hibernate.hql.internal.ast.tree.FromElement findFromElementByUserOrSqlAlias(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String userAlias
        start local 2 // java.lang.String sqlAlias
         0: .line 154
            aconst_null
            astore 3 /* fromElement */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         1: .line 155
            aload 1 /* userAlias */
            ifnull 3
         2: .line 156
            aload 0 /* this */
            aload 1 /* userAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElement:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* fromElement */
         3: .line 159
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 3 /* fromElement */
            ifnonnull 5
         4: .line 160
            aload 0 /* this */
            aload 2 /* sqlAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findFromElementBySqlAlias:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 3 /* fromElement */
         5: .line 163
      StackMap locals:
      StackMap stack:
            aload 3 /* fromElement */
            areturn
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 2 // java.lang.String sqlAlias
        end local 1 // java.lang.String userAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     1    userAlias  Ljava/lang/String;
            0    6     2     sqlAlias  Ljava/lang/String;
            1    6     3  fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
           Name  Flags
      userAlias  
      sqlAlias   

  private org.hibernate.hql.internal.ast.tree.FromElement findIntendedAliasedFromElementBasedOnCrazyJPARequirements(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String specifiedAlias
         0: .line 167
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         2: .line 168
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* alias */
        start local 4 // java.lang.String alias
         3: .line 169
            aload 4 /* alias */
            aload 1 /* specifiedAlias */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 170
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            areturn
        end local 4 // java.lang.String alias
        end local 2 // java.util.Map$Entry entry
         5: .line 167
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 173
            aconst_null
            areturn
        end local 1 // java.lang.String specifiedAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    7     1  specifiedAlias  Ljava/lang/String;
            2    5     2           entry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;>;
            3    5     4           alias  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      specifiedAlias  

  public boolean isFromElementAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String possibleAlias
         0: .line 185
            aload 0 /* this */
            aload 1 /* possibleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.containsClassAlias:(Ljava/lang/String;)Z
            istore 2 /* isAlias */
        start local 2 // boolean isAlias
         1: .line 186
            iload 2 /* isAlias */
            ifne 3
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            ifnull 3
         2: .line 188
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 1 /* possibleAlias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.isFromElementAlias:(Ljava/lang/String;)Z
            istore 2 /* isAlias */
         3: .line 190
      StackMap locals: int
      StackMap stack:
            iload 2 /* isAlias */
            ireturn
        end local 2 // boolean isAlias
        end local 1 // java.lang.String possibleAlias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    4     1  possibleAlias  Ljava/lang/String;
            1    4     2        isAlias  Z
    MethodParameters:
               Name  Flags
      possibleAlias  

  public java.util.List getFromElements();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 199
            aload 0 /* this */
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.fromElementPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.collectChildren:(Lantlr/collections/AST;Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;)Ljava/util/List;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public org.hibernate.hql.internal.ast.tree.FromElement getFromElement();
    descriptor: ()Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 208
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElements:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public java.util.List getProjectionList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 217
            aload 0 /* this */
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.projectionListPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.collectChildren:(Lantlr/collections/AST;Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;)Ljava/util/List;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public java.util.List getCollectionFetches();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 221
            aload 0 /* this */
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.collectionFetchPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.collectChildren:(Lantlr/collections/AST;Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;)Ljava/util/List;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public boolean hasCollectionFecthes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 225
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getCollectionFetches:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public java.util.List getExplicitFromElements();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 229
            aload 0 /* this */
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.explicitFromPredicate:Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;
            invokestatic org.hibernate.hql.internal.ast.util.ASTUtil.collectChildren:(Lantlr/collections/AST;Lorg/hibernate/hql/internal/ast/util/ASTUtil$FilterPredicate;)Ljava/util/List;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  org.hibernate.hql.internal.ast.tree.FromElement findCollectionJoin(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
         0: .line 265
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.collectionJoinFromElementsByPath:Ljava/util/Map;
            aload 1 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            areturn
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    1     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  org.hibernate.hql.internal.ast.tree.FromElement findJoinByPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
         0: .line 273
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findJoinByPathLocal:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* elem */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement elem
         1: .line 274
            aload 2 /* elem */
            ifnonnull 3
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            ifnull 3
         2: .line 275
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            aload 1 /* path */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findJoinByPath:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            astore 2 /* elem */
         3: .line 277
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack:
            aload 2 /* elem */
            areturn
        end local 2 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    4     1  path  Ljava/lang/String;
            1    4     2  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
      Name  Flags
      path  

  org.hibernate.hql.internal.ast.tree.FromElement findJoinByPathLocal(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
         0: .line 281
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementsByPath:Ljava/util/Map;
            astore 2 /* joinsByPath */
        start local 2 // java.util.Map joinsByPath
         1: .line 282
            aload 2 /* joinsByPath */
            aload 1 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            areturn
        end local 2 // java.util.Map joinsByPath
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    2     1         path  Ljava/lang/String;
            1    2     2  joinsByPath  Ljava/util/Map;
    MethodParameters:
      Name  Flags
      path  

  void addJoinByPathMap(java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement destination
         0: .line 286
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isDebugEnabled:()Z
            ifeq 2
         1: .line 287
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "addJoinByPathMap() : %s -> %s"
            aload 1 /* path */
            aload 2 /* destination */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getDisplayText:()Ljava/lang/String;
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementsByPath:Ljava/util/Map;
            aload 1 /* path */
            aload 2 /* destination */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 290
            return
        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.FromClause this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    4     1         path  Ljava/lang/String;
            0    4     2  destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
             Name  Flags
      path         
      destination  

  public boolean containsClassAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String alias
         0: .line 300
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            aload 1 /* alias */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            istore 2 /* isAlias */
        start local 2 // boolean isAlias
         1: .line 301
            iload 2 /* isAlias */
            ifne 5
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.isStrictJPAQLComplianceEnabled:()Z
            ifeq 5
         2: .line 302
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* isAlias */
         5: .line 304
      StackMap locals:
      StackMap stack:
            iload 2 /* isAlias */
            ireturn
        end local 2 // boolean isAlias
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     1    alias  Ljava/lang/String;
            1    6     2  isAlias  Z
    MethodParameters:
       Name  Flags
      alias  

  public boolean containsTableAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String alias
         0: .line 315
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByTableAlias:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 1 /* alias */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public java.lang.String getDisplayText();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 319
            new java.lang.StringBuilder
            dup
            ldc "FromClause{level="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 320
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         2: .line 321
            ldc ", fromElementCounter="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementCounter:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 322
            ldc ", fromElements="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElements:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 323
            ldc ", fromElementByClassAlias="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByClassAlias:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 324
            ldc ", fromElementByTableAlias="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementByTableAlias:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 325
            ldc ", fromElementsByPath="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementsByPath:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 326
            ldc ", collectionJoinFromElementsByPath="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.collectionJoinFromElementsByPath:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 327
            ldc ", impliedElements="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.impliedElements:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         9: .line 328
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 319
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public void setParentFromClause(org.hibernate.hql.internal.ast.tree.FromClause);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromClause;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromClause parentFromClause
         0: .line 332
            aload 0 /* this */
            aload 1 /* parentFromClause */
            putfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
         1: .line 333
            aload 1 /* parentFromClause */
            ifnull 4
         2: .line 334
            aload 0 /* this */
            aload 1 /* parentFromClause */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getLevel:()I
            iconst_1
            iadd
            putfield org.hibernate.hql.internal.ast.tree.FromClause.level:I
         3: .line 335
            aload 1 /* parentFromClause */
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.addChild:(Lorg/hibernate/hql/internal/ast/tree/FromClause;)V
         4: .line 337
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.hibernate.hql.internal.ast.tree.FromClause parentFromClause
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    5     1  parentFromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
    MethodParameters:
                  Name  Flags
      parentFromClause  

  private void addChild(org.hibernate.hql.internal.ast.tree.FromClause);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromClause;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
         0: .line 340
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
            ifnonnull 2
         1: .line 341
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
         2: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
            aload 1 /* fromClause */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 344
            return
        end local 1 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    4     1  fromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
    MethodParameters:
            Name  Flags
      fromClause  

  public org.hibernate.hql.internal.ast.tree.FromClause locateChildFromClauseWithJoinByPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromClause;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
         0: .line 347
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
            ifnull 6
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 6
         1: .line 348
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.childFromClauses:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromClause
            astore 2 /* child */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromClause child
         3: .line 349
            aload 2 /* child */
            aload 1 /* path */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.findJoinByPathLocal:(Ljava/lang/String;)Lorg/hibernate/hql/internal/ast/tree/FromElement;
            ifnull 5
         4: .line 350
            aload 2 /* child */
            areturn
        end local 2 // org.hibernate.hql.internal.ast.tree.FromClause child
         5: .line 348
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 354
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String path
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    7     1   path  Ljava/lang/String;
            3    5     2  child  Lorg/hibernate/hql/internal/ast/tree/FromClause;
    MethodParameters:
      Name  Flags
      path  

  public void promoteJoin(org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromElement elem
         0: .line 358
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Promoting [%s] to [%s]"
            aload 1 /* elem */
            aload 0 /* this */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 366
            return
        end local 1 // org.hibernate.hql.internal.ast.tree.FromElement elem
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    2     1  elem  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
      Name  Flags
      elem  

  public boolean isSubQuery();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 370
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  void addCollectionJoinFromElementByPath(java.lang.String, org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // java.lang.String path
        start local 2 // org.hibernate.hql.internal.ast.tree.FromElement destination
         0: .line 374
            getstatic org.hibernate.hql.internal.ast.tree.FromClause.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "addCollectionJoinFromElementByPath() : %s -> %s"
            aload 1 /* path */
            aload 2 /* destination */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 375
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.collectionJoinFromElementsByPath:Ljava/util/Map;
         2: .line 376
            aload 1 /* path */
         3: .line 377
            aload 2 /* destination */
         4: .line 375
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 379
            return
        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.FromClause this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    6     1         path  Ljava/lang/String;
            0    6     2  destination  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
             Name  Flags
      path         
      destination  

  public org.hibernate.hql.internal.ast.tree.FromClause getParentFromClause();
    descriptor: ()Lorg/hibernate/hql/internal/ast/tree/FromClause;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 382
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.parentFromClause:Lorg/hibernate/hql/internal/ast/tree/FromClause;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public int getLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 386
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.level:I
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public int nextFromElementCounter();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 390
            aload 0 /* this */
            dup
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementCounter:I
            dup_x1
            iconst_1
            iadd
            putfield org.hibernate.hql.internal.ast.tree.FromClause.fromElementCounter:I
            ireturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;

  public void resolve();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 395
            new org.hibernate.hql.internal.ast.util.ASTIterator
            dup
            aload 0 /* this */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFirstChild:()Lantlr/collections/AST;
            invokespecial org.hibernate.hql.internal.ast.util.ASTIterator.<init>:(Lantlr/collections/AST;)V
            astore 1 /* iter */
        start local 1 // org.hibernate.hql.internal.ast.util.ASTIterator iter
         1: .line 396
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* childrenInTree */
        start local 2 // java.util.Set childrenInTree
         2: .line 397
            goto 4
         3: .line 398
      StackMap locals: org.hibernate.hql.internal.ast.util.ASTIterator java.util.Set
      StackMap stack:
            aload 2 /* childrenInTree */
            aload 1 /* iter */
            invokevirtual org.hibernate.hql.internal.ast.util.ASTIterator.next:()Ljava/lang/Object;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokevirtual org.hibernate.hql.internal.ast.util.ASTIterator.hasNext:()Z
            ifne 3
         5: .line 400
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.fromElements:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause org.hibernate.hql.internal.ast.util.ASTIterator java.util.Set top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 3 /* fromElement */
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         7: .line 401
            aload 2 /* childrenInTree */
            aload 3 /* fromElement */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 402
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Element not in AST: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fromElement */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         9: .line 400
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 405
            return
        end local 2 // java.util.Set childrenInTree
        end local 1 // org.hibernate.hql.internal.ast.util.ASTIterator iter
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            1   11     1            iter  Lorg/hibernate/hql/internal/ast/util/ASTIterator;
            2   11     2  childrenInTree  Ljava/util/Set;
            7    9     3     fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;

  public void addImpliedFromElement(org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
        start local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
         0: .line 408
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.impliedElements:Ljava/util/List;
            aload 1 /* element */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 409
            return
        end local 1 // org.hibernate.hql.internal.ast.tree.FromElement element
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            0    2     1  element  Lorg/hibernate/hql/internal/ast/tree/FromElement;
    MethodParameters:
         Name  Flags
      element  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
         0: .line 413
            new java.lang.StringBuilder
            dup
            ldc "FromClause{level="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.tree.FromClause.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hibernate.hql.internal.ast.tree.FromClause this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/hql/internal/ast/tree/FromClause;
}
SourceFile: "FromClause.java"
NestMembers:
  org.hibernate.hql.internal.ast.tree.FromClause$1  org.hibernate.hql.internal.ast.tree.FromClause$2  org.hibernate.hql.internal.ast.tree.FromClause$3  org.hibernate.hql.internal.ast.tree.FromClause$4
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  org.hibernate.hql.internal.ast.tree.FromClause$1
  org.hibernate.hql.internal.ast.tree.FromClause$2
  org.hibernate.hql.internal.ast.tree.FromClause$3
  org.hibernate.hql.internal.ast.tree.FromClause$4
  public abstract FilterPredicate = org.hibernate.hql.internal.ast.util.ASTUtil$FilterPredicate of org.hibernate.hql.internal.ast.util.ASTUtil