public class org.h2.value.CompareModeIcu4J extends org.h2.value.CompareMode
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.value.CompareModeIcu4J
super_class: org.h2.value.CompareMode
{
private final java.util.Comparator<java.lang.String> collator;
descriptor: Ljava/util/Comparator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Comparator<Ljava/lang/String;>;
protected void <init>(java.lang.String, int, boolean, boolean);
descriptor: (Ljava/lang/String;IZZ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
iload 2
iload 3
iload 4
invokespecial org.h2.value.CompareMode.<init>:(Ljava/lang/String;IZZ)V
1: aload 0
aload 1
iload 2
invokestatic org.h2.value.CompareModeIcu4J.getIcu4jCollator:(Ljava/lang/String;I)Ljava/util/Comparator;
putfield org.h2.value.CompareModeIcu4J.collator:Ljava/util/Comparator;
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/value/CompareModeIcu4J;
0 3 1 name Ljava/lang/String;
0 3 2 strength I
0 3 3 binaryUnsigned Z
0 3 4 uuidUnsigned Z
MethodParameters:
Name Flags
name
strength
binaryUnsigned
uuidUnsigned
public int compareString(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 3
1: aload 1
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
astore 1
2: aload 2
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
astore 2
3: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.value.CompareModeIcu4J.collator:Ljava/util/Comparator;
aload 1
aload 2
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)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/h2/value/CompareModeIcu4J;
0 4 1 a Ljava/lang/String;
0 4 2 b Ljava/lang/String;
0 4 3 ignoreCase Z
MethodParameters:
Name Flags
a
b
ignoreCase
public boolean equalsChars(java.lang.String, int, java.lang.String, int, boolean);
descriptor: (Ljava/lang/String;ILjava/lang/String;IZ)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
iload 2
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aload 3
iload 4
iload 4
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
1: iload 5
2: invokevirtual org.h2.value.CompareModeIcu4J.compareString:(Ljava/lang/String;Ljava/lang/String;Z)I
ifne 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
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 4 0 this Lorg/h2/value/CompareModeIcu4J;
0 4 1 a Ljava/lang/String;
0 4 2 ai I
0 4 3 b Ljava/lang/String;
0 4 4 bi I
0 4 5 ignoreCase Z
MethodParameters:
Name Flags
a
ai
b
bi
ignoreCase
private static java.util.Comparator<java.lang.String> getIcu4jCollator(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/util/Comparator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: ldc "com.ibm.icu.text.Collator"
2: invokestatic org.h2.util.JdbcUtils.loadUserClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
start local 3 3: aload 3
4: ldc "getInstance"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/util/Locale;
aastore
5: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 6: aload 0
invokevirtual java.lang.String.length:()I
istore 5
start local 5 7: iload 5
iconst_2
if_icmpne 12
8: new java.util.Locale
dup
aload 0
invokestatic org.h2.util.StringUtils.toLowerEnglish:(Ljava/lang/String;)Ljava/lang/String;
ldc ""
invokespecial java.util.Locale.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 6
start local 6 9: aload 6
aload 0
invokestatic org.h2.value.CompareModeIcu4J.compareLocaleNames:(Ljava/util/Locale;Ljava/lang/String;)Z
ifeq 20
10: aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Comparator
astore 2
end local 6 11: goto 20
StackMap locals: java.lang.String int java.util.Comparator java.lang.Class java.lang.reflect.Method int
StackMap stack:
12: iload 5
iconst_5
if_icmpne 20
13: aload 0
bipush 95
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 14: iload 6
iflt 20
15: aload 0
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic org.h2.util.StringUtils.toLowerEnglish:(Ljava/lang/String;)Ljava/lang/String;
astore 7
start local 7 16: aload 0
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 8
start local 8 17: new java.util.Locale
dup
aload 7
aload 8
invokespecial java.util.Locale.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 9
start local 9 18: aload 9
aload 0
invokestatic org.h2.value.CompareModeIcu4J.compareLocaleNames:(Ljava/util/Locale;Ljava/lang/String;)Z
ifeq 20
19: aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Comparator
astore 2
end local 9 end local 8 end local 7 end local 6 20: StackMap locals:
StackMap stack:
aload 2
ifnonnull 32
21: aload 3
22: ldc "getAvailableLocales"
iconst_0
anewarray java.lang.Class
23: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
24: aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
25: checkcast java.util.Locale[]
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 31
StackMap locals: java.lang.String int java.util.Comparator java.lang.Class java.lang.reflect.Method int top int int java.util.Locale[]
StackMap stack:
26: aload 9
iload 7
aaload
astore 6
start local 6 27: aload 6
aload 0
invokestatic org.h2.value.CompareModeIcu4J.compareLocaleNames:(Ljava/util/Locale;Ljava/lang/String;)Z
ifeq 30
28: aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Comparator
astore 2
29: goto 32
end local 6 30: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
31: iload 7
iload 8
if_icmplt 26
32: StackMap locals: java.lang.String int java.util.Comparator java.lang.Class java.lang.reflect.Method int
StackMap stack:
aload 2
ifnonnull 34
33: ldc "collator"
aload 0
invokestatic org.h2.message.DbException.getInvalidValueException:(Ljava/lang/String;Ljava/lang/Object;)Lorg/h2/message/DbException;
athrow
34: StackMap locals:
StackMap stack:
aload 3
ldc "setStrength"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
35: aload 2
36: areturn
end local 5 end local 4 end local 3 end local 2 37: StackMap locals: java.lang.String int
StackMap stack: java.lang.Exception
astore 2
start local 2 38: aload 2
invokestatic org.h2.message.DbException.convert:(Ljava/lang/Throwable;)Lorg/h2/message/DbException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 name Ljava/lang/String;
0 39 1 strength I
1 37 2 result Ljava/util/Comparator<Ljava/lang/String;>;
3 37 3 collatorClass Ljava/lang/Class<*>;
6 37 4 getInstanceMethod Ljava/lang/reflect/Method;
7 37 5 length I
9 11 6 locale Ljava/util/Locale;
14 20 6 idx I
16 20 7 language Ljava/lang/String;
17 20 8 country Ljava/lang/String;
18 20 9 locale Ljava/util/Locale;
27 30 6 locale Ljava/util/Locale;
38 39 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 36 37 Class java.lang.Exception
Signature: (Ljava/lang/String;I)Ljava/util/Comparator<Ljava/lang/String;>;
MethodParameters:
Name Flags
name
strength
}
SourceFile: "CompareModeIcu4J.java"