class io.ebeaninternal.server.rawsql.DRawSqlParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.ebeaninternal.server.rawsql.DRawSqlParser
  super_class: java.lang.Object
{
  private static final java.lang.String $_AND_HAVING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "${andHaving}"

  private static final java.lang.String $_HAVING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "${having}"

  private static final java.lang.String $_AND_WHERE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "${andWhere}"

  private static final java.lang.String $_WHERE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "${where}"

  private final io.ebeaninternal.server.querydefn.SimpleTextParser textParser;
    descriptor: Lio/ebeaninternal/server/querydefn/SimpleTextParser;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

  private final boolean hasPlaceHolders;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

  public static io.ebeaninternal.server.rawsql.SpiRawSql$Sql parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/ebeaninternal/server/rawsql/SpiRawSql$Sql;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String sql
         0: .line 45
            new io.ebeaninternal.server.rawsql.DRawSqlParser
            dup
            aload 0 /* sql */
            invokespecial io.ebeaninternal.server.rawsql.DRawSqlParser.<init>:(Ljava/lang/String;)V
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.parse:()Lio/ebeaninternal/server/rawsql/SpiRawSql$Sql;
            areturn
        end local 0 // java.lang.String sql
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   sql  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
        start local 1 // java.lang.String sqlString
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 30
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
         2: .line 31
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
         3: .line 32
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
         4: .line 33
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
         5: .line 34
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
         6: .line 35
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
         7: .line 36
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
         8: .line 37
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
         9: .line 40
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
        10: .line 42
            aload 0 /* this */
            iconst_m1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
        11: .line 49
            aload 1 /* sqlString */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* sqlString */
        12: .line 50
            aload 1 /* sqlString */
            bipush 10
            bipush 32
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* sqlString */
        13: .line 51
            aload 0 /* this */
            aload 1 /* sqlString */
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
        14: .line 52
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findAndRemovePlaceHolders:()Z
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
        15: .line 53
            aload 0 /* this */
            new io.ebeaninternal.server.querydefn.SimpleTextParser
            dup
            aload 1 /* sqlString */
            invokespecial io.ebeaninternal.server.querydefn.SimpleTextParser.<init>:(Ljava/lang/String;)V
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
        16: .line 54
            return
        end local 1 // java.lang.String sqlString
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            0   17     1  sqlString  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      sqlString  

  private io.ebeaninternal.server.rawsql.SpiRawSql$Sql parse();
    descriptor: ()Lio/ebeaninternal/server/rawsql/SpiRawSql$Sql;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=6, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 58
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.parseSqlFindKeywords:()V
         1: .line 60
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findWhereExprPosition:()I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
         2: .line 61
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findHavingExprPosition:()I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
         3: .line 63
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findPreFromSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removeWhitespace:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* preFrom */
        start local 1 // java.lang.String preFrom
         4: .line 64
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findPreWhereSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removeWhitespace:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* preWhere */
        start local 2 // java.lang.String preWhere
         5: .line 65
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findPreHavingSql:()Ljava/lang/String;
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removeWhitespace:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* preHaving */
        start local 3 // java.lang.String preHaving
         6: .line 66
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findOrderByPrefixSql:()Ljava/lang/String;
            astore 4 /* orderByPrefix */
        start local 4 // java.lang.String orderByPrefix
         7: .line 67
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findOrderBySql:()Ljava/lang/String;
            astore 5 /* orderBySql */
        start local 5 // java.lang.String orderBySql
         8: .line 69
            aload 0 /* this */
            aload 1 /* preFrom */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.trimSelectKeyword:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* preFrom */
         9: .line 71
            new io.ebeaninternal.server.rawsql.SpiRawSql$Sql
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 1 /* preFrom */
            aload 2 /* preWhere */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprAnd:Z
            aload 3 /* preHaving */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprAnd:Z
            aload 4 /* orderByPrefix */
            aload 5 /* orderBySql */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
            iconst_m1
            if_icmple 10
            iconst_1
            goto 11
      StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: new 9 new 9 java.lang.String java.lang.String java.lang.String int java.lang.String int java.lang.String java.lang.String
        10: iconst_0
      StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: new 9 new 9 java.lang.String java.lang.String java.lang.String int java.lang.String int java.lang.String java.lang.String int
        11: invokespecial io.ebeaninternal.server.rawsql.SpiRawSql$Sql.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ZLjava/lang/String;Ljava/lang/String;Z)V
            areturn
        end local 5 // java.lang.String orderBySql
        end local 4 // java.lang.String orderByPrefix
        end local 3 // java.lang.String preHaving
        end local 2 // java.lang.String preWhere
        end local 1 // java.lang.String preFrom
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            4   12     1        preFrom  Ljava/lang/String;
            5   12     2       preWhere  Ljava/lang/String;
            6   12     3      preHaving  Ljava/lang/String;
            7   12     4  orderByPrefix  Ljava/lang/String;
            8   12     5     orderBySql  Ljava/lang/String;

  private boolean findAndRemovePlaceHolders();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 78
            aload 0 /* this */
            aload 0 /* this */
            ldc "${where}"
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
         1: .line 79
            aload 0 /* this */
            aload 0 /* this */
            ldc "${andWhere}"
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
         2: .line 80
            aload 0 /* this */
            aload 0 /* this */
            ldc "${having}"
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
         3: .line 81
            aload 0 /* this */
            aload 0 /* this */
            ldc "${andHaving}"
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndHaving:I
         4: .line 82
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:()Z
            ireturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private int removePlaceHolder(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
        start local 1 // java.lang.String placeHolder
         0: .line 86
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 1 /* placeHolder */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 87
            iload 2 /* pos */
            iconst_m1
            if_icmple 7
         2: .line 88
            iload 2 /* pos */
            aload 1 /* placeHolder */
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_1
            iadd
            istore 3 /* after */
        start local 3 // int after
         3: .line 89
            iload 3 /* after */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmple 6
         4: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            iconst_0
            iload 2 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
         5: .line 91
            goto 7
         6: .line 92
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            iconst_0
            iload 2 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            iload 3 /* after */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
        end local 3 // int after
         7: .line 95
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            ireturn
        end local 2 // int pos
        end local 1 // java.lang.String placeHolder
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            0    8     1  placeHolder  Ljava/lang/String;
            1    8     2          pos  I
            3    7     3        after  I
    MethodParameters:
             Name  Flags
      placeHolder  

  private boolean hasPlaceHolders();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 99
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
            iconst_m1
            if_icmpgt 1
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
            iconst_m1
            if_icmpgt 1
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
            iconst_m1
            if_icmpgt 1
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndHaving:I
            iconst_m1
            if_icmpgt 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String trimSelectKeyword(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
        start local 1 // java.lang.String preWhereExprSql
         0: .line 107
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
            ifge 2
         1: .line 108
            new java.lang.IllegalStateException
            dup
            ldc "select keyword not found?"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* preWhereExprSql */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* preWhereExprSql */
         3: .line 112
            aload 1 /* preWhereExprSql */
            iconst_0
            bipush 7
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 2 /* select */
        start local 2 // java.lang.String select
         4: .line 113
            aload 2 /* select */
            ldc "select "
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 6
         5: .line 114
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expecting ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* preWhereExprSql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] to start with \"select\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 116
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* preWhereExprSql */
            bipush 7
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 1 /* preWhereExprSql */
         7: .line 117
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
            iconst_m1
            if_icmple 12
         8: .line 119
            aload 1 /* preWhereExprSql */
            iconst_0
            bipush 9
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* distinct */
        start local 3 // java.lang.String distinct
         9: .line 120
            aload 3 /* distinct */
            ldc "distinct "
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 11
        10: .line 121
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expecting ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* preWhereExprSql */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] to start with \"select distinct\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 123
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* preWhereExprSql */
            bipush 9
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* preWhereExprSql */
        end local 3 // java.lang.String distinct
        12: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* preWhereExprSql */
            areturn
        end local 2 // java.lang.String select
        end local 1 // java.lang.String preWhereExprSql
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            0   13     1  preWhereExprSql  Ljava/lang/String;
            4   13     2           select  Ljava/lang/String;
            9   12     3         distinct  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      preWhereExprSql  

  private java.lang.String findOrderByPrefixSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 130
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            iconst_1
            if_icmpge 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String findOrderBySql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 134
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
            iconst_1
            if_icmpge 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String findPreHavingSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 138
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            if_icmple 2
         1: .line 140
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         2: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            iconst_m1
            if_icmple 8
         3: .line 143
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            iconst_m1
            if_icmpne 5
         4: .line 144
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         5: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            if_icmpne 7
         6: .line 147
            ldc ""
            areturn
         7: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         8: .line 153
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String findPreFromSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 157
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            iconst_0
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String findPreWhereSql();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 161
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            iconst_m1
            if_icmple 2
         1: .line 162
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private void parseSqlFindKeywords();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 170
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "select"
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
         1: .line 171
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
            iconst_m1
            if_icmpne 4
         2: .line 172
            ldc "Error parsing sql, can not find SELECT keyword in:"
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         3: .line 173
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String msg
         4: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.nextWord:()Ljava/lang/String;
            astore 1 /* possibleDistinct */
        start local 1 // java.lang.String possibleDistinct
         5: .line 177
            ldc "distinct"
            aload 1 /* possibleDistinct */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 178
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.getPos:()I
            bipush 8
            isub
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
         7: .line 181
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "from"
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
         8: .line 182
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            iconst_m1
            if_icmpne 11
         9: .line 183
            ldc "Error parsing sql, can not find FROM keyword in:"
            astore 2 /* msg */
        start local 2 // java.lang.String msg
        10: .line 184
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String msg
        11: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "where"
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
        12: .line 188
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
            iconst_m1
            if_icmpne 15
        13: .line 189
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "group"
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            iconst_5
            iadd
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;I)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
        14: .line 190
            goto 16
        15: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "group"
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
        16: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
            iconst_m1
            if_icmple 18
        17: .line 194
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "having"
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
        18: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
            istore 2 /* startOrderBy */
        start local 2 // int startOrderBy
        19: .line 198
            iload 2 /* startOrderBy */
            iconst_m1
            if_icmpne 21
        20: .line 199
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
            istore 2 /* startOrderBy */
        21: .line 201
      StackMap locals: int
      StackMap stack:
            iload 2 /* startOrderBy */
            iconst_m1
            if_icmpne 23
        22: .line 202
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
            istore 2 /* startOrderBy */
        23: .line 204
      StackMap locals:
      StackMap stack:
            iload 2 /* startOrderBy */
            iconst_m1
            if_icmpne 25
        24: .line 205
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
            istore 2 /* startOrderBy */
        25: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "order"
            iload 2 /* startOrderBy */
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;I)I
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
        26: .line 209
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            iconst_1
            if_icmple 28
        27: .line 212
            aload 0 /* this */
            iconst_2
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
            ldc "by"
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;I)I
            iadd
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
        28: .line 214
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int startOrderBy
        end local 1 // java.lang.String possibleDistinct
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   29     0              this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            3    4     1               msg  Ljava/lang/String;
            5   29     1  possibleDistinct  Ljava/lang/String;
           10   11     2               msg  Ljava/lang/String;
           19   29     2      startOrderBy  I

  private int findWhereExprPosition();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 217
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
            ifeq 5
         1: .line 218
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
            iconst_m1
            if_icmple 3
         2: .line 219
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
            ireturn
         3: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprAnd:Z
         4: .line 222
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
            ireturn
         5: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: io.ebeaninternal.server.rawsql.DRawSqlParser
         6: iconst_0
      StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser
      StackMap stack: io.ebeaninternal.server.rawsql.DRawSqlParser int
         7: putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprAnd:Z
         8: .line 226
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
            ifle 10
         9: .line 227
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
            ireturn
        10: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
            ifle 12
        11: .line 230
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
            ireturn
        12: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            ifle 14
        13: .line 233
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            ireturn
        14: .line 235
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private int findHavingExprPosition();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
         0: .line 239
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
            ifeq 5
         1: .line 240
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
            iconst_m1
            if_icmple 3
         2: .line 241
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
            ireturn
         3: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprAnd:Z
         4: .line 244
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndHaving:I
            ireturn
         5: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: io.ebeaninternal.server.rawsql.DRawSqlParser
         6: iconst_0
      StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser
      StackMap stack: io.ebeaninternal.server.rawsql.DRawSqlParser int
         7: putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprAnd:Z
         8: .line 248
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            ifle 10
         9: .line 249
            aload 0 /* this */
            getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
            ireturn
        10: .line 251
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;

  private java.lang.String removeWhitespace(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
        start local 1 // java.lang.String sql
         0: .line 255
            aload 1 /* sql */
            ifnonnull 2
         1: .line 256
            ldc ""
            areturn
         2: .line 259
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* removeWhitespace */
        start local 2 // boolean removeWhitespace
         3: .line 261
            aload 1 /* sql */
            invokevirtual java.lang.String.length:()I
            istore 3 /* length */
        start local 3 // int length
         4: .line 262
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         5: .line 263
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 19
         7: .line 264
      StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser java.lang.String int int java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sql */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* c */
        start local 6 // char c
         8: .line 265
            iload 2 /* removeWhitespace */
            ifeq 13
         9: .line 266
            iload 6 /* c */
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 18
        10: .line 267
            aload 4 /* sb */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        11: .line 268
            iconst_0
            istore 2 /* removeWhitespace */
        12: .line 270
            goto 18
        13: .line 271
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            bipush 13
            if_icmpeq 14
            iload 6 /* c */
            bipush 10
            if_icmpne 17
        14: .line 272
      StackMap locals:
      StackMap stack:
            aload 4 /* sb */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 273
            iconst_1
            istore 2 /* removeWhitespace */
        16: .line 274
            goto 18
        17: .line 275
      StackMap locals:
      StackMap stack:
            aload 4 /* sb */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 6 // char c
        18: .line 263
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            iload 3 /* length */
            if_icmplt 7
        end local 5 // int i
        20: .line 280
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* s */
        start local 5 // java.lang.String s
        21: .line 281
            aload 5 /* s */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.String s
        end local 4 // java.lang.StringBuilder sb
        end local 3 // int length
        end local 2 // boolean removeWhitespace
        end local 1 // java.lang.String sql
        end local 0 // io.ebeaninternal.server.rawsql.DRawSqlParser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lio/ebeaninternal/server/rawsql/DRawSqlParser;
            0   22     1               sql  Ljava/lang/String;
            3   22     2  removeWhitespace  Z
            4   22     3            length  I
            5   22     4                sb  Ljava/lang/StringBuilder;
            6   20     5                 i  I
            8   18     6                 c  C
           21   22     5                 s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      sql   
}
SourceFile: "DRawSqlParser.java"
InnerClasses:
  public final Sql = io.ebeaninternal.server.rawsql.SpiRawSql$Sql of io.ebeaninternal.server.rawsql.SpiRawSql