public final class org.hibernate.hql.internal.QuerySplitter
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.hql.internal.QuerySplitter
  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 static final java.util.Set<java.lang.String> BEFORE_CLASS_TOKENS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> NOT_AFTER_CLASS_TOKENS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 45
            ldc Lorg/hibernate/hql/internal/QuerySplitter;
            invokestatic org.hibernate.internal.CoreLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/CoreMessageLogger;
            putstatic org.hibernate.hql.internal.QuerySplitter.LOG:Lorg/hibernate/internal/CoreMessageLogger;
         1: .line 47
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
         2: .line 48
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.hibernate.hql.internal.QuerySplitter.NOT_AFTER_CLASS_TOKENS:Ljava/util/Set;
         3: .line 51
            getstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
            ldc "from"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 52
            getstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
            ldc "delete"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 53
            getstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
            ldc "update"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 55
            getstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
            ldc ","
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 56
            getstatic org.hibernate.hql.internal.QuerySplitter.NOT_AFTER_CLASS_TOKENS:Ljava/util/Set;
            ldc "in"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 58
            getstatic org.hibernate.hql.internal.QuerySplitter.NOT_AFTER_CLASS_TOKENS:Ljava/util/Set;
            ldc "from"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 59
            getstatic org.hibernate.hql.internal.QuerySplitter.NOT_AFTER_CLASS_TOKENS:Ljava/util/Set;
            ldc ")"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 60
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.hql.internal.QuerySplitter this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            return
        end local 0 // org.hibernate.hql.internal.QuerySplitter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/hql/internal/QuerySplitter;

  public static java.lang.String[] concreteQueries(java.lang.String, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // java.lang.String query
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 81
            ldc " \n\r\f\t(),"
            aload 0 /* query */
            iconst_1
            invokestatic org.hibernate.internal.util.StringHelper.split:(Ljava/lang/String;Ljava/lang/String;Z)[Ljava/lang/String;
            astore 2 /* tokens */
        start local 2 // java.lang.String[] tokens
         1: .line 82
            aload 2 /* tokens */
            arraylength
            ifne 3
         2: .line 84
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* query */
            aastore
            areturn
         3: .line 86
      StackMap locals: java.lang.String[]
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* placeholders */
        start local 3 // java.util.ArrayList placeholders
         4: .line 87
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* replacements */
        start local 4 // java.util.ArrayList replacements
         5: .line 88
            new java.lang.StringBuilder
            dup
            bipush 40
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* templateQuery */
        start local 5 // java.lang.StringBuilder templateQuery
         6: .line 90
            aload 2 /* tokens */
            aload 5 /* templateQuery */
            invokestatic org.hibernate.hql.internal.QuerySplitter.getStartingPositionFor:([Ljava/lang/String;Ljava/lang/StringBuilder;)I
            istore 6 /* start */
        start local 6 // int start
         7: .line 91
            iconst_0
            istore 7 /* count */
        start local 7 // int count
         8: .line 93
            aload 2 /* tokens */
            iload 6 /* start */
            iconst_1
            isub
            aaload
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 9 /* last */
        start local 9 // java.lang.String last
         9: .line 95
            iload 6 /* start */
            istore 10 /* i */
        start local 10 // int i
        10: goto 32
        11: .line 97
      StackMap locals: java.lang.String org.hibernate.engine.spi.SessionFactoryImplementor java.lang.String[] java.util.ArrayList java.util.ArrayList java.lang.StringBuilder int int top java.lang.String int
      StackMap stack:
            aload 2 /* tokens */
            iload 10 /* i */
            aaload
            astore 11 /* token */
        start local 11 // java.lang.String token
        12: .line 99
            aload 11 /* token */
            invokestatic org.hibernate.hql.internal.classic.ParserHelper.isWhitespace:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 100
            aload 5 /* templateQuery */
            aload 11 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 101
            goto 31
        15: .line 104
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* tokens */
            iload 10 /* i */
            invokestatic org.hibernate.hql.internal.QuerySplitter.nextNonWhite:([Ljava/lang/String;I)Ljava/lang/String;
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 8 /* next */
        start local 8 // java.lang.String next
        16: .line 106
            aload 11 /* token */
            invokestatic org.hibernate.hql.internal.QuerySplitter.isJavaIdentifier:(Ljava/lang/String;)Z
            ifeq 19
        17: .line 107
            aload 9 /* last */
            aload 8 /* next */
            invokestatic org.hibernate.hql.internal.QuerySplitter.isPossiblyClassName:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 19
        18: .line 106
            iconst_1
            goto 20
      StackMap locals: java.lang.String org.hibernate.engine.spi.SessionFactoryImplementor java.lang.String[] java.util.ArrayList java.util.ArrayList java.lang.StringBuilder int int java.lang.String java.lang.String int java.lang.String
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 12 /* process */
        start local 12 // boolean process
        21: .line 109
            aload 11 /* token */
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 9 /* last */
        22: .line 111
            iload 12 /* process */
            ifeq 30
        23: .line 112
            aload 11 /* token */
            aload 1 /* factory */
            invokestatic org.hibernate.hql.internal.QuerySplitter.getImportedClass:(Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
            astore 13 /* importedClassName */
        start local 13 // java.lang.String importedClassName
        24: .line 113
            aload 13 /* importedClassName */
            ifnull 30
        25: .line 114
            aload 1 /* factory */
            aload 13 /* importedClassName */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getImplementors:(Ljava/lang/String;)[Ljava/lang/String;
            astore 14 /* implementors */
        start local 14 // java.lang.String[] implementors
        26: .line 115
            new java.lang.StringBuilder
            dup
            ldc "$clazz"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* count */
            iinc 7 /* count */ 1
            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;
            astore 11 /* token */
        27: .line 116
            aload 14 /* implementors */
            ifnull 30
        28: .line 117
            aload 3 /* placeholders */
            aload 11 /* token */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        29: .line 118
            aload 4 /* replacements */
            aload 14 /* implementors */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // java.lang.String[] implementors
        end local 13 // java.lang.String importedClassName
        30: .line 123
      StackMap locals: int
      StackMap stack:
            aload 5 /* templateQuery */
            aload 11 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 12 // boolean process
        end local 11 // java.lang.String token
        end local 8 // java.lang.String next
        31: .line 95
      StackMap locals: java.lang.String org.hibernate.engine.spi.SessionFactoryImplementor java.lang.String[] java.util.ArrayList java.util.ArrayList java.lang.StringBuilder int int top java.lang.String int
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 10 /* i */
            aload 2 /* tokens */
            arraylength
            if_icmplt 11
        end local 10 // int i
        33: .line 127
            aload 5 /* templateQuery */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 128
            aload 3 /* placeholders */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
        35: .line 129
            aload 4 /* replacements */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
        36: .line 126
            invokestatic org.hibernate.internal.util.StringHelper.multiply:(Ljava/lang/String;Ljava/util/Iterator;Ljava/util/Iterator;)[Ljava/lang/String;
            astore 10 /* results */
        start local 10 // java.lang.String[] results
        37: .line 131
            aload 10 /* results */
            arraylength
            ifne 39
        38: .line 132
            getstatic org.hibernate.hql.internal.QuerySplitter.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            aload 0 /* query */
            invokeinterface org.hibernate.internal.CoreMessageLogger.noPersistentClassesFound:(Ljava/lang/String;)V
        39: .line 134
      StackMap locals: java.lang.String org.hibernate.engine.spi.SessionFactoryImplementor java.lang.String[] java.util.ArrayList java.util.ArrayList java.lang.StringBuilder int int top java.lang.String java.lang.String[]
      StackMap stack:
            aload 10 /* results */
            areturn
        end local 10 // java.lang.String[] results
        end local 9 // java.lang.String last
        end local 7 // int count
        end local 6 // int start
        end local 5 // java.lang.StringBuilder templateQuery
        end local 4 // java.util.ArrayList replacements
        end local 3 // java.util.ArrayList placeholders
        end local 2 // java.lang.String[] tokens
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // java.lang.String query
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   40     0              query  Ljava/lang/String;
            0   40     1            factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            1   40     2             tokens  [Ljava/lang/String;
            4   40     3       placeholders  Ljava/util/ArrayList<Ljava/lang/String;>;
            5   40     4       replacements  Ljava/util/ArrayList<[Ljava/lang/String;>;
            6   40     5      templateQuery  Ljava/lang/StringBuilder;
            7   40     6              start  I
            8   40     7              count  I
           16   31     8               next  Ljava/lang/String;
            9   40     9               last  Ljava/lang/String;
           10   33    10                  i  I
           12   31    11              token  Ljava/lang/String;
           21   31    12            process  Z
           24   30    13  importedClassName  Ljava/lang/String;
           26   30    14       implementors  [Ljava/lang/String;
           37   40    10            results  [Ljava/lang/String;
    Exceptions:
      throws org.hibernate.MappingException
    MethodParameters:
         Name  Flags
      query    
      factory  

  private static java.lang.String nextNonWhite(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String[] tokens
        start local 1 // int start
         0: .line 138
            iload 1 /* start */
            iconst_1
            iadd
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 139
      StackMap locals: int
      StackMap stack:
            aload 0 /* tokens */
            iload 2 /* i */
            aaload
            invokestatic org.hibernate.hql.internal.classic.ParserHelper.isWhitespace:(Ljava/lang/String;)Z
            ifne 4
         3: .line 140
            aload 0 /* tokens */
            iload 2 /* i */
            aaload
            areturn
         4: .line 138
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* tokens */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 143
            aload 0 /* tokens */
            aload 0 /* tokens */
            arraylength
            iconst_1
            isub
            aaload
            areturn
        end local 1 // int start
        end local 0 // java.lang.String[] tokens
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  tokens  [Ljava/lang/String;
            0    7     1   start  I
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      tokens  
      start   

  private static int getStartingPositionFor(java.lang.String[], java.lang.StringBuilder);
    descriptor: ([Ljava/lang/String;Ljava/lang/StringBuilder;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String[] tokens
        start local 1 // java.lang.StringBuilder templateQuery
         0: .line 147
            aload 1 /* templateQuery */
            aload 0 /* tokens */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 148
            ldc "select"
            aload 0 /* tokens */
            iconst_0
            aaload
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 149
            iconst_1
            ireturn
         3: .line 153
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         4: goto 9
         5: .line 154
      StackMap locals: int
      StackMap stack:
            ldc "from"
            aload 0 /* tokens */
            iload 2 /* i */
            aaload
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 155
            iload 2 /* i */
            ireturn
         7: .line 157
      StackMap locals:
      StackMap stack:
            aload 1 /* templateQuery */
            aload 0 /* tokens */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 153
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 0 /* tokens */
            arraylength
            if_icmplt 5
        end local 2 // int i
        10: .line 159
            aload 0 /* tokens */
            arraylength
            ireturn
        end local 1 // java.lang.StringBuilder templateQuery
        end local 0 // java.lang.String[] tokens
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0         tokens  [Ljava/lang/String;
            0   11     1  templateQuery  Ljava/lang/StringBuilder;
            4   10     2              i  I
    MethodParameters:
               Name  Flags
      tokens         
      templateQuery  

  private static boolean isPossiblyClassName(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String last
        start local 1 // java.lang.String next
         0: .line 163
            ldc "class"
            aload 0 /* last */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 164
            getstatic org.hibernate.hql.internal.QuerySplitter.BEFORE_CLASS_TOKENS:Ljava/util/Set;
            aload 0 /* last */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
            getstatic org.hibernate.hql.internal.QuerySplitter.NOT_AFTER_CLASS_TOKENS:Ljava/util/Set;
            aload 1 /* next */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 163
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // java.lang.String next
        end local 0 // java.lang.String last
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  last  Ljava/lang/String;
            0    4     1  next  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      last  
      next  

  private static boolean isJavaIdentifier(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 token
         0: .line 168
            aload 0 /* token */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isJavaIdentifierStart:(C)Z
            ireturn
        end local 0 // java.lang.String token
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  token  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      token  

  public static java.lang.String getImportedClass(java.lang.String, org.hibernate.engine.spi.SessionFactoryImplementor);
    descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/SessionFactoryImplementor;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
         0: .line 172
            aload 1 /* factory */
            aload 0 /* name */
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getImportedClassName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // org.hibernate.engine.spi.SessionFactoryImplementor factory
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     name  Ljava/lang/String;
            0    1     1  factory  Lorg/hibernate/engine/spi/SessionFactoryImplementor;
    MethodParameters:
         Name  Flags
      name     
      factory  
}
SourceFile: "QuerySplitter.java"