public class org.hibernate.hql.internal.ast.util.JoinProcessor 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.util.JoinProcessor
  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 final org.hibernate.hql.internal.ast.HqlSqlWalker walker;
    descriptor: Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.hibernate.hql.internal.ast.util.SyntheticAndFactory syntheticAndFactory;
    descriptor: Lorg/hibernate/hql/internal/ast/util/SyntheticAndFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(org.hibernate.hql.internal.ast.HqlSqlWalker);
    descriptor: (Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
        start local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            aload 1 /* walker */
            putfield org.hibernate.hql.internal.ast.util.JoinProcessor.walker:Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
         2: .line 76
            aload 0 /* this */
            new org.hibernate.hql.internal.ast.util.SyntheticAndFactory
            dup
            aload 1 /* walker */
            invokespecial org.hibernate.hql.internal.ast.util.SyntheticAndFactory.<init>:(Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
            putfield org.hibernate.hql.internal.ast.util.JoinProcessor.syntheticAndFactory:Lorg/hibernate/hql/internal/ast/util/SyntheticAndFactory;
         3: .line 77
            return
        end local 1 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        end local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/hibernate/hql/internal/ast/util/JoinProcessor;
            0    4     1  walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
    MethodParameters:
        Name  Flags
      walker  

  public static org.hibernate.sql.JoinType toHibernateJoinType(int);
    descriptor: (I)Lorg/hibernate/sql/JoinType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // int astJoinType
         0: .line 90
            iload 0 /* astJoinType */
            lookupswitch { // 4
                   23: 4
                   28: 2
                  142: 1
                  143: 3
              default: 5
          }
         1: .line 92
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.LEFT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.INNER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
         3: .line 98
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.RIGHT_OUTER_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
         4: .line 101
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.sql.JoinType.FULL_JOIN:Lorg/hibernate/sql/JoinType;
            areturn
         5: .line 104
      StackMap locals:
      StackMap stack:
            new org.hibernate.AssertionFailure
            dup
            new java.lang.StringBuilder
            dup
            ldc "undefined join type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* astJoinType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.hibernate.AssertionFailure.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int astJoinType
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  astJoinType  I
    MethodParameters:
             Name  Flags
      astJoinType  

  public void processJoins(org.hibernate.hql.internal.ast.tree.QueryNode);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/QueryNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
        start local 1 // org.hibernate.hql.internal.ast.tree.QueryNode query
         0: .line 110
            aload 1 /* query */
            invokevirtual org.hibernate.hql.internal.ast.tree.QueryNode.getFromClause:()Lorg/hibernate/hql/internal/ast/tree/FromClause;
            astore 2 /* fromClause */
        start local 2 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
         1: .line 113
            getstatic org.hibernate.hql.internal.ast.tree.DotNode.useThetaStyleImplicitJoins:Z
            ifeq 8
         2: .line 120
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* fromElements */
        start local 3 // java.util.List fromElements
         3: .line 121
            aload 2 /* fromClause */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElements:()Ljava/util/List;
            aload 2 /* fromClause */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElements:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 4 /* liter */
        start local 4 // java.util.ListIterator liter
         4: .line 122
            goto 6
         5: .line 123
      StackMap locals: org.hibernate.hql.internal.ast.tree.FromClause java.util.List java.util.ListIterator
      StackMap stack:
            aload 3 /* fromElements */
            aload 4 /* liter */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 122
      StackMap locals:
      StackMap stack:
            aload 4 /* liter */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 5
        end local 4 // java.util.ListIterator liter
         7: .line 125
            goto 9
        end local 3 // java.util.List fromElements
         8: .line 127
      StackMap locals:
      StackMap stack:
            aload 2 /* fromClause */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromClause.getFromElements:()Ljava/util/List;
            astore 3 /* fromElements */
        start local 3 // java.util.List fromElements
         9: .line 131
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* fromElements */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
        10: .line 132
            goto 17
        11: .line 133
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.hibernate.hql.internal.ast.tree.FromElement
            astore 5 /* fromElement */
        start local 5 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        12: .line 134
            aload 5 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            astore 6 /* join */
        start local 6 // org.hibernate.engine.internal.JoinSequence join
        13: .line 135
            aload 6 /* join */
        14: .line 136
            new org.hibernate.hql.internal.ast.util.JoinProcessor$1
            dup
            aload 0 /* this */
            aload 2 /* fromClause */
            aload 5 /* fromElement */
            invokespecial org.hibernate.hql.internal.ast.util.JoinProcessor$1.<init>:(Lorg/hibernate/hql/internal/ast/util/JoinProcessor;Lorg/hibernate/hql/internal/ast/tree/FromClause;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
        15: .line 135
            invokevirtual org.hibernate.engine.internal.JoinSequence.setSelector:(Lorg/hibernate/engine/internal/JoinSequence$Selector;)Lorg/hibernate/engine/internal/JoinSequence;
            pop
        16: .line 159
            aload 0 /* this */
            aload 1 /* query */
            aload 6 /* join */
            aload 5 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.util.JoinProcessor.addJoinNodes:(Lorg/hibernate/hql/internal/ast/tree/QueryNode;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
        end local 6 // org.hibernate.engine.internal.JoinSequence join
        end local 5 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        17: .line 132
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        18: .line 162
            return
        end local 4 // java.util.Iterator iter
        end local 3 // java.util.List fromElements
        end local 2 // org.hibernate.hql.internal.ast.tree.FromClause fromClause
        end local 1 // org.hibernate.hql.internal.ast.tree.QueryNode query
        end local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/hibernate/hql/internal/ast/util/JoinProcessor;
            0   19     1         query  Lorg/hibernate/hql/internal/ast/tree/QueryNode;
            1   19     2    fromClause  Lorg/hibernate/hql/internal/ast/tree/FromClause;
            3    8     3  fromElements  Ljava/util/List;
            9   19     3  fromElements  Ljava/util/List;
            4    7     4         liter  Ljava/util/ListIterator;
           10   19     4          iter  Ljava/util/Iterator;
           12   17     5   fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
           13   17     6          join  Lorg/hibernate/engine/internal/JoinSequence;
    MethodParameters:
       Name  Flags
      query  

  private void addJoinNodes(org.hibernate.hql.internal.ast.tree.QueryNode, org.hibernate.engine.internal.JoinSequence, org.hibernate.hql.internal.ast.tree.FromElement);
    descriptor: (Lorg/hibernate/hql/internal/ast/tree/QueryNode;Lorg/hibernate/engine/internal/JoinSequence;Lorg/hibernate/hql/internal/ast/tree/FromElement;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
        start local 1 // org.hibernate.hql.internal.ast.tree.QueryNode query
        start local 2 // org.hibernate.engine.internal.JoinSequence join
        start local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
         0: .line 165
            aload 2 /* join */
         1: .line 166
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.JoinProcessor.walker:Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getEnabledFilters:()Ljava/util/Map;
         2: .line 167
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.useFromFragment:()Z
            ifne 3
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.isDereferencedBySuperclassOrSubclassProperty:()Z
            ifne 3
            iconst_0
            goto 4
      StackMap locals: org.hibernate.hql.internal.ast.util.JoinProcessor org.hibernate.hql.internal.ast.tree.QueryNode org.hibernate.engine.internal.JoinSequence org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack: org.hibernate.engine.internal.JoinSequence java.util.Map
         3: iconst_1
         4: .line 168
      StackMap locals: org.hibernate.hql.internal.ast.util.JoinProcessor org.hibernate.hql.internal.ast.tree.QueryNode org.hibernate.engine.internal.JoinSequence org.hibernate.hql.internal.ast.tree.FromElement
      StackMap stack: org.hibernate.engine.internal.JoinSequence java.util.Map int
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getWithClauseFragment:()Ljava/lang/String;
         5: .line 169
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getWithClauseJoinAlias:()Ljava/lang/String;
         6: .line 165
            invokevirtual org.hibernate.engine.internal.JoinSequence.toJoinFragment:(Ljava/util/Map;ZLjava/lang/String;Ljava/lang/String;)Lorg/hibernate/sql/JoinFragment;
            astore 4 /* joinFragment */
        start local 4 // org.hibernate.sql.JoinFragment joinFragment
         7: .line 172
            aload 4 /* joinFragment */
            invokevirtual org.hibernate.sql.JoinFragment.toFromFragmentString:()Ljava/lang/String;
            astore 5 /* frag */
        start local 5 // java.lang.String frag
         8: .line 173
            aload 4 /* joinFragment */
            invokevirtual org.hibernate.sql.JoinFragment.toWhereFragmentString:()Ljava/lang/String;
            astore 6 /* whereFrag */
        start local 6 // java.lang.String whereFrag
         9: .line 178
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getType:()I
            sipush 140
            if_icmpne 13
        10: .line 179
            aload 2 /* join */
            invokevirtual org.hibernate.engine.internal.JoinSequence.isThetaStyle:()Z
            ifne 11
            aload 6 /* whereFrag */
            invokestatic org.hibernate.internal.util.StringHelper.isNotEmpty:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 180
      StackMap locals: org.hibernate.sql.JoinFragment java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* fromElement */
            sipush 138
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.setType:(I)V
        12: .line 181
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.getJoinSequence:()Lorg/hibernate/engine/internal/JoinSequence;
            iconst_1
            invokevirtual org.hibernate.engine.internal.JoinSequence.setUseThetaStyle:(Z)Lorg/hibernate/engine/internal/JoinSequence;
            pop
        13: .line 185
      StackMap locals:
      StackMap stack:
            aload 3 /* fromElement */
            invokevirtual org.hibernate.hql.internal.ast.tree.FromElement.useFromFragment:()Z
            ifeq 20
        14: .line 186
            aload 0 /* this */
            aload 5 /* frag */
            aload 2 /* join */
            invokevirtual org.hibernate.hql.internal.ast.util.JoinProcessor.processFromFragment:(Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 7 /* fromFragment */
        start local 7 // java.lang.String fromFragment
        15: .line 187
            getstatic org.hibernate.hql.internal.ast.util.JoinProcessor.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Using FROM fragment [%s]"
            aload 7 /* fromFragment */
            invokeinterface org.hibernate.internal.CoreMessageLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 189
            aload 7 /* fromFragment */
        17: .line 190
            aload 3 /* fromElement */
        18: .line 191
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.JoinProcessor.walker:Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
        19: .line 188
            invokestatic org.hibernate.hql.internal.ast.util.JoinProcessor.processDynamicFilterParameters:(Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/ParameterContainer;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
        end local 7 // java.lang.String fromFragment
        20: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.JoinProcessor.syntheticAndFactory:Lorg/hibernate/hql/internal/ast/util/SyntheticAndFactory;
        21: .line 196
            aload 4 /* joinFragment */
        22: .line 197
            aload 6 /* whereFrag */
        23: .line 198
            aload 1 /* query */
        24: .line 199
            aload 3 /* fromElement */
        25: .line 200
            aload 0 /* this */
            getfield org.hibernate.hql.internal.ast.util.JoinProcessor.walker:Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
        26: .line 195
            invokevirtual org.hibernate.hql.internal.ast.util.SyntheticAndFactory.addWhereFragment:(Lorg/hibernate/sql/JoinFragment;Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/QueryNode;Lorg/hibernate/hql/internal/ast/tree/FromElement;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
        27: .line 202
            return
        end local 6 // java.lang.String whereFrag
        end local 5 // java.lang.String frag
        end local 4 // org.hibernate.sql.JoinFragment joinFragment
        end local 3 // org.hibernate.hql.internal.ast.tree.FromElement fromElement
        end local 2 // org.hibernate.engine.internal.JoinSequence join
        end local 1 // org.hibernate.hql.internal.ast.tree.QueryNode query
        end local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/hibernate/hql/internal/ast/util/JoinProcessor;
            0   28     1         query  Lorg/hibernate/hql/internal/ast/tree/QueryNode;
            0   28     2          join  Lorg/hibernate/engine/internal/JoinSequence;
            0   28     3   fromElement  Lorg/hibernate/hql/internal/ast/tree/FromElement;
            7   28     4  joinFragment  Lorg/hibernate/sql/JoinFragment;
            8   28     5          frag  Ljava/lang/String;
            9   28     6     whereFrag  Ljava/lang/String;
           15   20     7  fromFragment  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      query        
      join         
      fromElement  

  private java.lang.String processFromFragment(java.lang.String, org.hibernate.engine.internal.JoinSequence);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/internal/JoinSequence;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
        start local 1 // java.lang.String frag
        start local 2 // org.hibernate.engine.internal.JoinSequence join
         0: .line 205
            aload 1 /* frag */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 3 /* fromFragment */
        start local 3 // java.lang.String fromFragment
         1: .line 207
            aload 3 /* fromFragment */
            ldc ", "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 208
            aload 3 /* fromFragment */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* fromFragment */
         3: .line 210
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* fromFragment */
            areturn
        end local 3 // java.lang.String fromFragment
        end local 2 // org.hibernate.engine.internal.JoinSequence join
        end local 1 // java.lang.String frag
        end local 0 // org.hibernate.hql.internal.ast.util.JoinProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/hibernate/hql/internal/ast/util/JoinProcessor;
            0    4     1          frag  Ljava/lang/String;
            0    4     2          join  Lorg/hibernate/engine/internal/JoinSequence;
            1    4     3  fromFragment  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      frag  
      join  

  public static void processDynamicFilterParameters(java.lang.String, org.hibernate.hql.internal.ast.tree.ParameterContainer, org.hibernate.hql.internal.ast.HqlSqlWalker);
    descriptor: (Ljava/lang/String;Lorg/hibernate/hql/internal/ast/tree/ParameterContainer;Lorg/hibernate/hql/internal/ast/HqlSqlWalker;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // java.lang.String sqlFragment
        start local 1 // org.hibernate.hql.internal.ast.tree.ParameterContainer container
        start local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
         0: .line 217
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getEnabledFilters:()Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 4
         1: .line 218
            aload 0 /* sqlFragment */
            invokestatic org.hibernate.hql.internal.ast.util.JoinProcessor.hasDynamicFilterParam:(Ljava/lang/String;)Z
            ifne 4
         2: .line 219
            aload 0 /* sqlFragment */
            invokestatic org.hibernate.hql.internal.ast.util.JoinProcessor.hasCollectionFilterParam:(Ljava/lang/String;)Z
            ifne 4
         3: .line 220
            return
         4: .line 223
      StackMap locals:
      StackMap stack:
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getDialect:()Lorg/hibernate/dialect/Dialect;
            astore 3 /* dialect */
        start local 3 // org.hibernate.dialect.Dialect dialect
         5: .line 224
            new java.lang.StringBuilder
            dup
            ldc " \n\r\f\t,()=<>&|+-=/*'^![]#~\\"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.openQuote:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* dialect */
            invokevirtual org.hibernate.dialect.Dialect.closeQuote:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* symbols */
        start local 4 // java.lang.String symbols
         6: .line 225
            new java.util.StringTokenizer
            dup
            aload 0 /* sqlFragment */
            aload 4 /* symbols */
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
            astore 5 /* tokens */
        start local 5 // java.util.StringTokenizer tokens
         7: .line 226
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* result */
        start local 6 // java.lang.StringBuilder result
         8: .line 228
            goto 31
         9: .line 229
      StackMap locals: java.lang.String org.hibernate.hql.internal.ast.tree.ParameterContainer org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.dialect.Dialect java.lang.String java.util.StringTokenizer java.lang.StringBuilder
      StackMap stack:
            aload 5 /* tokens */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 7 /* token */
        start local 7 // java.lang.String token
        10: .line 230
            aload 7 /* token */
            ldc ":"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 30
        11: .line 231
            aload 7 /* token */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* filterParameterName */
        start local 8 // java.lang.String filterParameterName
        12: .line 232
            aload 8 /* filterParameterName */
            invokestatic org.hibernate.engine.spi.LoadQueryInfluencers.parseFilterParameterName:(Ljava/lang/String;)[Ljava/lang/String;
            astore 9 /* parts */
        start local 9 // java.lang.String[] parts
        13: .line 233
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getEnabledFilters:()Ljava/util/Map;
            aload 9 /* parts */
            iconst_0
            aaload
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.internal.FilterImpl
            astore 10 /* filter */
        start local 10 // org.hibernate.internal.FilterImpl filter
        14: .line 234
            aload 10 /* filter */
            aload 9 /* parts */
            iconst_1
            aaload
            invokevirtual org.hibernate.internal.FilterImpl.getParameter:(Ljava/lang/String;)Ljava/lang/Object;
            astore 11 /* value */
        start local 11 // java.lang.Object value
        15: .line 235
            aload 10 /* filter */
            invokevirtual org.hibernate.internal.FilterImpl.getFilterDefinition:()Lorg/hibernate/engine/spi/FilterDefinition;
            aload 9 /* parts */
            iconst_1
            aaload
            invokevirtual org.hibernate.engine.spi.FilterDefinition.getParameterType:(Ljava/lang/String;)Lorg/hibernate/type/Type;
            astore 12 /* type */
        start local 12 // org.hibernate.type.Type type
        16: .line 237
            ldc ","
        17: .line 239
            ldc "?"
        18: .line 240
            aload 12 /* type */
            aload 2 /* walker */
            invokevirtual org.hibernate.hql.internal.ast.HqlSqlWalker.getSessionFactoryHelper:()Lorg/hibernate/hql/internal/ast/util/SessionFactoryHelper;
            invokevirtual org.hibernate.hql.internal.ast.util.SessionFactoryHelper.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.type.Type.getColumnSpan:(Lorg/hibernate/engine/spi/Mapping;)I
        19: .line 238
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.fillArray:(Ljava/lang/String;I)[Ljava/lang/String;
        20: .line 236
            invokestatic org.hibernate.internal.util.StringHelper.join:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* typeBindFragment */
        start local 13 // java.lang.String typeBindFragment
        21: .line 244
            aload 11 /* value */
            ifnull 26
            ldc Ljava/util/Collection;
            aload 11 /* value */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 26
        22: .line 246
            ldc ","
        23: .line 247
            aload 13 /* typeBindFragment */
            aload 11 /* value */
            checkcast java.util.Collection
            invokeinterface java.util.Collection.size:()I
            invokestatic org.hibernate.internal.util.collections.ArrayHelper.fillArray:(Ljava/lang/String;I)[Ljava/lang/String;
        24: .line 245
            invokestatic org.hibernate.internal.util.StringHelper.join:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* bindFragment */
        start local 14 // java.lang.String bindFragment
        25: .line 249
            goto 27
        end local 14 // java.lang.String bindFragment
        26: .line 251
      StackMap locals: java.lang.String org.hibernate.hql.internal.ast.tree.ParameterContainer org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.dialect.Dialect java.lang.String java.util.StringTokenizer java.lang.StringBuilder java.lang.String java.lang.String java.lang.String[] org.hibernate.internal.FilterImpl java.lang.Object org.hibernate.type.Type java.lang.String
      StackMap stack:
            aload 13 /* typeBindFragment */
            astore 14 /* bindFragment */
        start local 14 // java.lang.String bindFragment
        27: .line 253
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* result */
            aload 14 /* bindFragment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 254
            aload 1 /* container */
            new org.hibernate.param.DynamicFilterParameterSpecification
            dup
            aload 9 /* parts */
            iconst_0
            aaload
            aload 9 /* parts */
            iconst_1
            aaload
            aload 12 /* type */
            invokespecial org.hibernate.param.DynamicFilterParameterSpecification.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/hibernate/type/Type;)V
            invokeinterface org.hibernate.hql.internal.ast.tree.ParameterContainer.addEmbeddedParameter:(Lorg/hibernate/param/ParameterSpecification;)V
        end local 14 // java.lang.String bindFragment
        end local 13 // java.lang.String typeBindFragment
        end local 12 // org.hibernate.type.Type type
        end local 11 // java.lang.Object value
        end local 10 // org.hibernate.internal.FilterImpl filter
        end local 9 // java.lang.String[] parts
        end local 8 // java.lang.String filterParameterName
        29: .line 255
            goto 31
        30: .line 257
      StackMap locals: java.lang.String org.hibernate.hql.internal.ast.tree.ParameterContainer org.hibernate.hql.internal.ast.HqlSqlWalker org.hibernate.dialect.Dialect java.lang.String java.util.StringTokenizer java.lang.StringBuilder java.lang.String
      StackMap stack:
            aload 6 /* result */
            aload 7 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String token
        31: .line 228
      StackMap locals:
      StackMap stack:
            aload 5 /* tokens */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 9
        32: .line 261
            aload 1 /* container */
            aload 6 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.hibernate.hql.internal.ast.tree.ParameterContainer.setText:(Ljava/lang/String;)V
        33: .line 262
            return
        end local 6 // java.lang.StringBuilder result
        end local 5 // java.util.StringTokenizer tokens
        end local 4 // java.lang.String symbols
        end local 3 // org.hibernate.dialect.Dialect dialect
        end local 2 // org.hibernate.hql.internal.ast.HqlSqlWalker walker
        end local 1 // org.hibernate.hql.internal.ast.tree.ParameterContainer container
        end local 0 // java.lang.String sqlFragment
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   34     0          sqlFragment  Ljava/lang/String;
            0   34     1            container  Lorg/hibernate/hql/internal/ast/tree/ParameterContainer;
            0   34     2               walker  Lorg/hibernate/hql/internal/ast/HqlSqlWalker;
            5   34     3              dialect  Lorg/hibernate/dialect/Dialect;
            6   34     4              symbols  Ljava/lang/String;
            7   34     5               tokens  Ljava/util/StringTokenizer;
            8   34     6               result  Ljava/lang/StringBuilder;
           10   31     7                token  Ljava/lang/String;
           12   29     8  filterParameterName  Ljava/lang/String;
           13   29     9                parts  [Ljava/lang/String;
           14   29    10               filter  Lorg/hibernate/internal/FilterImpl;
           15   29    11                value  Ljava/lang/Object;
           16   29    12                 type  Lorg/hibernate/type/Type;
           21   29    13     typeBindFragment  Ljava/lang/String;
           25   26    14         bindFragment  Ljava/lang/String;
           27   29    14         bindFragment  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sqlFragment  final
      container    final
      walker       final

  private static boolean hasDynamicFilterParam(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String sqlFragment
         0: .line 265
            aload 0 /* sqlFragment */
            ldc ":"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.String sqlFragment
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  sqlFragment  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sqlFragment  

  private static boolean hasCollectionFilterParam(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String sqlFragment
         0: .line 269
            aload 0 /* sqlFragment */
            ldc "?"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.String sqlFragment
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  sqlFragment  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      sqlFragment  
}
SourceFile: "JoinProcessor.java"
NestMembers:
  org.hibernate.hql.internal.ast.util.JoinProcessor$1
InnerClasses:
  public abstract Selector = org.hibernate.engine.internal.JoinSequence$Selector of org.hibernate.engine.internal.JoinSequence
  org.hibernate.hql.internal.ast.util.JoinProcessor$1