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 0: new io.ebeaninternal.server.rawsql.DRawSqlParser
dup
aload 0
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 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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
2: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
3: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
4: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
5: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
6: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
7: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
8: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
9: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
10: aload 0
iconst_m1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
11: aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 1
12: aload 1
bipush 10
bipush 32
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 1
13: aload 0
aload 1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
14: aload 0
aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findAndRemovePlaceHolders:()Z
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
15: aload 0
new io.ebeaninternal.server.querydefn.SimpleTextParser
dup
aload 1
invokespecial io.ebeaninternal.server.querydefn.SimpleTextParser.<init>:(Ljava/lang/String;)V
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
16: return
end local 1 end local 0 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 0: aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.parseSqlFindKeywords:()V
1: aload 0
aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findWhereExprPosition:()I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
2: aload 0
aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findHavingExprPosition:()I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
3: aload 0
aload 0
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
start local 1 4: aload 0
aload 0
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
start local 2 5: aload 0
aload 0
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
start local 3 6: aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findOrderByPrefixSql:()Ljava/lang/String;
astore 4
start local 4 7: aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.findOrderBySql:()Ljava/lang/String;
astore 5
start local 5 8: aload 0
aload 1
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.trimSelectKeyword:(Ljava/lang/String;)Ljava/lang/String;
astore 1
9: new io.ebeaninternal.server.rawsql.SpiRawSql$Sql
dup
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 1
aload 2
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprAnd:Z
aload 3
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprAnd:Z
aload 4
aload 5
aload 0
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 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
aload 0
ldc "${where}"
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
1: aload 0
aload 0
ldc "${andWhere}"
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
2: aload 0
aload 0
ldc "${having}"
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
3: aload 0
aload 0
ldc "${andHaving}"
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.removePlaceHolder:(Ljava/lang/String;)I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndHaving:I
4: aload 0
invokevirtual io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:()Z
ireturn
end local 0 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 start local 1 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmple 7
2: iload 2
aload 1
invokevirtual java.lang.String.length:()I
iadd
iconst_1
iadd
istore 3
start local 3 3: iload 3
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmple 6
4: aload 0
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
5: goto 7
6: StackMap locals: int int
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
iconst_0
iload 2
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
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
iload 3
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 7: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
iconst_m1
if_icmpgt 1
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
iconst_m1
if_icmpgt 1
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
iconst_m1
if_icmpgt 1
aload 0
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 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 start local 1 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
ifge 2
1: new java.lang.IllegalStateException
dup
ldc "select keyword not found?"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 1
3: aload 1
iconst_0
bipush 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
start local 2 4: aload 2
ldc "select "
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 6
5: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Expecting ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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: StackMap locals: java.lang.String
StackMap stack:
aload 1
bipush 7
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 1
7: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.distinctPos:I
iconst_m1
if_icmple 12
8: aload 1
iconst_0
bipush 9
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 9: aload 3
ldc "distinct "
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 11
10: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Expecting ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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: StackMap locals: java.lang.String
StackMap stack:
aload 1
bipush 9
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
end local 3 12: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
iconst_1
if_icmpge 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
aload 0
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 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByStmtPos:I
iconst_1
if_icmpge 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
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 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
if_icmple 2
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprPos:I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
iconst_m1
if_icmple 8
3: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
iconst_m1
if_icmpne 5
4: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
if_icmpne 7
6: ldc ""
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
8: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
iconst_0
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
iconst_m1
if_icmple 2
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprPos:I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.sql:Ljava/lang/String;
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
end local 0 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 0: aload 0
aload 0
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: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.selectPos:I
iconst_m1
if_icmpne 4
2: ldc "Error parsing sql, can not find SELECT keyword in:"
astore 1
start local 1 3: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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 4: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.nextWord:()Ljava/lang/String;
astore 1
start local 1 5: ldc "distinct"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
6: aload 0
aload 0
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: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 0
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: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
iconst_m1
if_icmpne 11
9: ldc "Error parsing sql, can not find FROM keyword in:"
astore 2
start local 2 10: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
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 11: StackMap locals:
StackMap stack:
aload 0
aload 0
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: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
iconst_m1
if_icmpne 15
13: aload 0
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
ldc "group"
aload 0
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: goto 16
15: StackMap locals:
StackMap stack:
aload 0
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
iconst_m1
if_icmple 18
17: aload 0
aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
istore 2
start local 2 19: iload 2
iconst_m1
if_icmpne 21
20: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
istore 2
21: StackMap locals: int
StackMap stack:
iload 2
iconst_m1
if_icmpne 23
22: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.wherePos:I
istore 2
23: StackMap locals:
StackMap stack:
iload 2
iconst_m1
if_icmpne 25
24: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.fromPos:I
istore 2
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
ldc "order"
iload 2
invokevirtual io.ebeaninternal.server.querydefn.SimpleTextParser.findWordLower:(Ljava/lang/String;I)I
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
26: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
iconst_1
if_icmple 28
27: aload 0
iconst_2
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.textParser:Lio/ebeaninternal/server/querydefn/SimpleTextParser;
ldc "by"
aload 0
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: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
ifeq 5
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
iconst_m1
if_icmple 3
2: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderWhere:I
ireturn
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.whereExprAnd:Z
4: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndWhere:I
ireturn
5: StackMap locals:
StackMap stack:
aload 0
aload 0
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: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
ifle 10
9: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.groupByPos:I
ireturn
10: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
ifle 12
11: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingPos:I
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
ifle 14
13: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
ireturn
14: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 0 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 0: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.hasPlaceHolders:Z
ifeq 5
1: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
iconst_m1
if_icmple 3
2: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderHaving:I
ireturn
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.ebeaninternal.server.rawsql.DRawSqlParser.havingExprAnd:Z
4: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.placeHolderAndHaving:I
ireturn
5: StackMap locals:
StackMap stack:
aload 0
aload 0
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: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
ifle 10
9: aload 0
getfield io.ebeaninternal.server.rawsql.DRawSqlParser.orderByPos:I
ireturn
10: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 0 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 start local 1 0: aload 1
ifnonnull 2
1: ldc ""
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 4: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 19
7: StackMap locals: io.ebeaninternal.server.rawsql.DRawSqlParser java.lang.String int int java.lang.StringBuilder int
StackMap stack:
aload 1
iload 5
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 8: iload 2
ifeq 13
9: iload 6
invokestatic java.lang.Character.isWhitespace:(C)Z
ifne 18
10: aload 4
iload 6
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
11: iconst_0
istore 2
12: goto 18
13: StackMap locals: int
StackMap stack:
iload 6
bipush 13
if_icmpeq 14
iload 6
bipush 10
if_icmpne 17
14: StackMap locals:
StackMap stack:
aload 4
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
15: iconst_1
istore 2
16: goto 18
17: StackMap locals:
StackMap stack:
aload 4
iload 6
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 6 18: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
iload 3
if_icmplt 7
end local 5 20: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 21: aload 5
invokevirtual java.lang.String.trim:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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