public class org.hibernate.dialect.pagination.SQLServer2012LimitHandler extends org.hibernate.dialect.pagination.SQLServer2005LimitHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.dialect.pagination.SQLServer2012LimitHandler
super_class: org.hibernate.dialect.pagination.SQLServer2005LimitHandler
{
private boolean usedOffsetFetch;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
public boolean supportsLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
public boolean supportsVariableLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
public java.lang.String processSql(java.lang.String, org.hibernate.engine.spi.RowSelection);
descriptor: (Ljava/lang/String;Lorg/hibernate/engine/spi/RowSelection;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2012LimitHandler.hasOrderBy:(Ljava/lang/String;)Z
ifeq 4
1: aload 0
aload 2
invokestatic org.hibernate.dialect.pagination.LimitHelper.useLimit:(Lorg/hibernate/dialect/pagination/LimitHandler;Lorg/hibernate/engine/spi/RowSelection;)Z
ifne 3
2: aload 1
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
aload 0
aload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2012LimitHandler.getInsertPosition:(Ljava/lang/String;)I
invokevirtual org.hibernate.dialect.pagination.SQLServer2012LimitHandler.applyOffsetFetch:(Lorg/hibernate/engine/spi/RowSelection;Ljava/lang/String;I)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler.processSql:(Ljava/lang/String;Lorg/hibernate/engine/spi/RowSelection;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 5 1 sql Ljava/lang/String;
0 5 2 selection Lorg/hibernate/engine/spi/RowSelection;
MethodParameters:
Name Flags
sql
selection
public boolean useMaxForLimit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hibernate.dialect.pagination.SQLServer2012LimitHandler.usedOffsetFetch:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler.useMaxForLimit:()Z
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
public int convertToFirstRowValue(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hibernate.dialect.pagination.SQLServer2012LimitHandler.usedOffsetFetch:Z
ifeq 2
1: iload 1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler.convertToFirstRowValue:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 3 1 zeroBasedFirstResult I
MethodParameters:
Name Flags
zeroBasedFirstResult
public int bindLimitParametersAtEndOfQuery(org.hibernate.engine.spi.RowSelection, java.sql.PreparedStatement, int);
descriptor: (Lorg/hibernate/engine/spi/RowSelection;Ljava/sql/PreparedStatement;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.hibernate.dialect.pagination.SQLServer2012LimitHandler.usedOffsetFetch:Z
ifeq 3
aload 1
invokestatic org.hibernate.dialect.pagination.LimitHelper.hasFirstRow:(Lorg/hibernate/engine/spi/RowSelection;)Z
ifne 3
1: aload 2
iload 3
aload 0
aload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2012LimitHandler.getMaxOrLimit:(Lorg/hibernate/engine/spi/RowSelection;)I
invokeinterface java.sql.PreparedStatement.setInt:(II)V
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iload 3
invokespecial org.hibernate.dialect.pagination.SQLServer2005LimitHandler.bindLimitParametersAtEndOfQuery:(Lorg/hibernate/engine/spi/RowSelection;Ljava/sql/PreparedStatement;I)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 4 1 selection Lorg/hibernate/engine/spi/RowSelection;
0 4 2 statement Ljava/sql/PreparedStatement;
0 4 3 index I
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
selection
statement
index
private java.lang.String getOffsetFetch(org.hibernate.engine.spi.RowSelection);
descriptor: (Lorg/hibernate/engine/spi/RowSelection;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.hibernate.dialect.pagination.LimitHelper.hasFirstRow:(Lorg/hibernate/engine/spi/RowSelection;)Z
ifne 2
1: ldc " offset 0 rows fetch next ? rows only"
areturn
2: StackMap locals:
StackMap stack:
ldc " offset ? rows fetch next ? rows only"
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 3 1 selection Lorg/hibernate/engine/spi/RowSelection;
MethodParameters:
Name Flags
selection
private int getInsertPosition(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 2
start local 2 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 3: iload 3
bipush 59
if_icmpeq 5
iload 3
bipush 32
if_icmpeq 5
iload 3
bipush 13
if_icmpeq 5
iload 3
bipush 10
if_icmpeq 5
4: goto 7
end local 3 5: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
6: iload 2
ifgt 2
7: StackMap locals:
StackMap stack:
iload 2
iconst_1
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 8 1 sql Ljava/lang/String;
1 8 2 position I
3 5 3 ch C
MethodParameters:
Name Flags
sql
private java.lang.String applyOffsetFetch(org.hibernate.engine.spi.RowSelection, java.lang.String, int);
descriptor: (Lorg/hibernate/engine/spi/RowSelection;Ljava/lang/String;I)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_1
putfield org.hibernate.dialect.pagination.SQLServer2012LimitHandler.usedOffsetFetch:Z
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 4
start local 4 2: aload 4
aload 2
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 4
aload 0
aload 1
invokevirtual org.hibernate.dialect.pagination.SQLServer2012LimitHandler.getOffsetFetch:(Lorg/hibernate/engine/spi/RowSelection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: iload 3
aload 2
invokevirtual java.lang.String.length:()I
if_icmple 6
5: aload 4
aload 2
iload 3
iconst_1
isub
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 7 1 selection Lorg/hibernate/engine/spi/RowSelection;
0 7 2 sql Ljava/lang/String;
0 7 3 position I
2 7 4 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
selection
sql
position
private boolean hasOrderBy(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
astore 3
start local 3 2: aload 3
invokevirtual java.lang.String.length:()I
iconst_1
isub
istore 4
start local 4 3: goto 14
4: StackMap locals: int java.lang.String int
StackMap stack:
aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 5: iload 5
bipush 40
if_icmpne 8
6: iinc 2 1
7: goto 10
8: StackMap locals: int
StackMap stack:
iload 5
bipush 41
if_icmpne 10
9: iinc 2 -1
10: StackMap locals:
StackMap stack:
iload 2
ifne 13
11: aload 3
ldc "order by "
iload 4
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 13
12: iconst_1
ireturn
end local 5 13: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
14: iload 4
ifge 4
end local 4 15: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/hibernate/dialect/pagination/SQLServer2012LimitHandler;
0 16 1 sql Ljava/lang/String;
1 16 2 depth I
2 16 3 lowerCaseSQL Ljava/lang/String;
3 15 4 i I
5 13 5 ch C
MethodParameters:
Name Flags
sql
}
SourceFile: "SQLServer2012LimitHandler.java"