public final class java.lang.module.ModuleDescriptor$Version implements java.lang.Comparable<java.lang.module.ModuleDescriptor$Version>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.lang.module.ModuleDescriptor$Version
super_class: java.lang.Object
{
private final java.lang.String version;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<java.lang.Object> sequence;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Object;>;
private final java.util.List<java.lang.Object> pre;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Object;>;
private final java.util.List<java.lang.Object> build;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Object;>;
private static int takeNumber(java.lang.String, int, java.util.List<java.lang.Object>);
descriptor: (Ljava/lang/String;ILjava/util/List;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 1: iload 3
bipush 48
isub
istore 4
start local 4 2: aload 0
invokevirtual java.lang.String.length:()I
istore 5
start local 5 3: goto 7
4: StackMap locals: int int int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 3
5: iload 3
bipush 48
if_icmplt 8
iload 3
bipush 57
if_icmpgt 8
6: iload 4
bipush 10
imul
iload 3
bipush 48
isub
iadd
istore 4
7: StackMap locals:
StackMap stack:
iinc 1 1
iload 1
iload 5
if_icmplt 4
8: StackMap locals:
StackMap stack:
aload 2
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: iload 1
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 10 0 s Ljava/lang/String;
0 10 1 i I
0 10 2 acc Ljava/util/List<Ljava/lang/Object;>;
1 10 3 c C
2 10 4 d I
3 10 5 n I
Signature: (Ljava/lang/String;ILjava/util/List<Ljava/lang/Object;>;)I
MethodParameters:
Name Flags
s
i
acc
private static int takeString(java.lang.String, int, java.util.List<java.lang.Object>);
descriptor: (Ljava/lang/String;ILjava/util/List;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
istore 3
start local 3 1: aload 0
invokevirtual java.lang.String.length:()I
istore 4
start local 4 2: goto 5
3: StackMap locals: int int
StackMap stack:
aload 0
iload 1
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 4: iload 5
bipush 46
if_icmpeq 6
iload 5
bipush 45
if_icmpeq 6
iload 5
bipush 43
if_icmpeq 6
iload 5
bipush 48
if_icmplt 5
iload 5
bipush 57
if_icmple 6
end local 5 5: StackMap locals:
StackMap stack:
iinc 1 1
iload 1
iload 4
if_icmplt 3
6: StackMap locals:
StackMap stack:
aload 2
aload 0
iload 3
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: iload 1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 s Ljava/lang/String;
0 8 1 i I
0 8 2 acc Ljava/util/List<Ljava/lang/Object;>;
1 8 3 b I
2 8 4 n I
4 5 5 c C
Signature: (Ljava/lang/String;ILjava/util/List<Ljava/lang/Object;>;)I
MethodParameters:
Name Flags
s
i
acc
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "Null version string"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.module.ModuleDescriptor$Version java.lang.String
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 4: iload 2
ifne 6
5: new java.lang.IllegalArgumentException
dup
ldc "Empty version string"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
iconst_0
istore 3
start local 3 7: aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 8: iload 4
bipush 48
if_icmplt 9
iload 4
bipush 57
if_icmple 13
9: StackMap locals: int int
StackMap stack:
new java.lang.IllegalArgumentException
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
10: ldc ": Version string does not start"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc " with a number"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 14: new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 6
start local 6 15: new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 16: aload 1
iload 3
aload 5
invokestatic java.lang.module.ModuleDescriptor$Version.takeNumber:(Ljava/lang/String;ILjava/util/List;)I
istore 3
17: goto 28
18: StackMap locals: java.util.List java.util.List java.util.List
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
19: iload 4
bipush 46
if_icmpne 22
20: iinc 3 1
21: goto 28
22: StackMap locals:
StackMap stack:
iload 4
bipush 45
if_icmpeq 23
iload 4
bipush 43
if_icmpne 25
23: StackMap locals:
StackMap stack:
iinc 3 1
24: goto 29
25: StackMap locals:
StackMap stack:
iload 4
bipush 48
if_icmplt 27
iload 4
bipush 57
if_icmpgt 27
26: aload 1
iload 3
aload 5
invokestatic java.lang.module.ModuleDescriptor$Version.takeNumber:(Ljava/lang/String;ILjava/util/List;)I
istore 3
goto 28
27: StackMap locals:
StackMap stack:
aload 1
iload 3
aload 5
invokestatic java.lang.module.ModuleDescriptor$Version.takeString:(Ljava/lang/String;ILjava/util/List;)I
istore 3
28: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 18
29: StackMap locals:
StackMap stack:
iload 4
bipush 45
if_icmpne 44
iload 3
iload 2
if_icmplt 44
30: new java.lang.IllegalArgumentException
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
ldc ": Empty pre-release"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
32: iload 4
bipush 48
if_icmplt 34
iload 4
bipush 57
if_icmpgt 34
33: aload 1
iload 3
aload 6
invokestatic java.lang.module.ModuleDescriptor$Version.takeNumber:(Ljava/lang/String;ILjava/util/List;)I
istore 3
goto 35
34: StackMap locals:
StackMap stack:
aload 1
iload 3
aload 6
invokestatic java.lang.module.ModuleDescriptor$Version.takeString:(Ljava/lang/String;ILjava/util/List;)I
istore 3
35: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 37
36: goto 45
37: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
38: iload 4
bipush 46
if_icmpeq 39
iload 4
bipush 45
if_icmpne 41
39: StackMap locals:
StackMap stack:
iinc 3 1
40: goto 44
41: StackMap locals:
StackMap stack:
iload 4
bipush 43
if_icmpne 44
42: iinc 3 1
43: goto 45
44: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 31
45: StackMap locals:
StackMap stack:
iload 4
bipush 43
if_icmpne 56
iload 3
iload 2
if_icmplt 56
46: new java.lang.IllegalArgumentException
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
ldc ": Empty pre-release"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
48: iload 4
bipush 48
if_icmplt 50
iload 4
bipush 57
if_icmpgt 50
49: aload 1
iload 3
aload 7
invokestatic java.lang.module.ModuleDescriptor$Version.takeNumber:(Ljava/lang/String;ILjava/util/List;)I
istore 3
goto 51
50: StackMap locals:
StackMap stack:
aload 1
iload 3
aload 7
invokestatic java.lang.module.ModuleDescriptor$Version.takeString:(Ljava/lang/String;ILjava/util/List;)I
istore 3
51: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 53
52: goto 57
53: StackMap locals:
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
54: iload 4
bipush 46
if_icmpeq 55
iload 4
bipush 45
if_icmpeq 55
iload 4
bipush 43
if_icmpne 56
55: StackMap locals:
StackMap stack:
iinc 3 1
56: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 47
57: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield java.lang.module.ModuleDescriptor$Version.version:Ljava/lang/String;
58: aload 0
aload 5
putfield java.lang.module.ModuleDescriptor$Version.sequence:Ljava/util/List;
59: aload 0
aload 6
putfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
60: aload 0
aload 7
putfield java.lang.module.ModuleDescriptor$Version.build:Ljava/util/List;
61: return
end local 7 end local 6 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 62 0 this Ljava/lang/module/ModuleDescriptor$Version;
0 62 1 v Ljava/lang/String;
4 62 2 n I
7 62 3 i I
8 62 4 c C
14 62 5 sequence Ljava/util/List<Ljava/lang/Object;>;
15 62 6 pre Ljava/util/List<Ljava/lang/Object;>;
16 62 7 build Ljava/util/List<Ljava/lang/Object;>;
MethodParameters:
Name Flags
v
public static java.lang.module.ModuleDescriptor$Version parse(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Version;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.module.ModuleDescriptor$Version
dup
aload 0
invokespecial java.lang.module.ModuleDescriptor$Version.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/lang/String;
MethodParameters:
Name Flags
v
private int cmp(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast java.lang.Comparable
aload 2
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/module/ModuleDescriptor$Version;
0 1 1 o1 Ljava/lang/Object;
0 1 2 o2 Ljava/lang/Object;
MethodParameters:
Name Flags
o1
o2
private int compareTokens(java.util.List<java.lang.Object>, java.util.List<java.lang.Object>);
descriptor: (Ljava/util/List;Ljava/util/List;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.List.size:()I
aload 2
invokeinterface java.util.List.size:()I
invokestatic java.lang.Math.min:(II)I
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 16
3: StackMap locals: int int
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 5
start local 5 4: aload 2
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 6
start local 6 5: aload 5
instanceof java.lang.Integer
ifeq 6
aload 6
instanceof java.lang.Integer
ifne 7
6: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 5
instanceof java.lang.String
ifeq 11
aload 6
instanceof java.lang.String
ifeq 11
7: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 6
invokevirtual java.lang.module.ModuleDescriptor$Version.cmp:(Ljava/lang/Object;Ljava/lang/Object;)I
istore 7
start local 7 8: iload 7
ifne 10
9: goto 15
10: StackMap locals: int
StackMap stack:
iload 7
ireturn
end local 7 11: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aload 6
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
istore 7
start local 7 12: iload 7
ifne 14
13: goto 15
14: StackMap locals: int
StackMap stack:
iload 7
ireturn
end local 7 end local 6 end local 5 15: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
16: iload 4
iload 3
if_icmplt 3
end local 4 17: aload 1
invokeinterface java.util.List.size:()I
aload 2
invokeinterface java.util.List.size:()I
if_icmple 18
aload 1
goto 19
StackMap locals:
StackMap stack:
18: aload 2
StackMap locals:
StackMap stack: java.util.List
19: astore 4
start local 4 20: aload 4
invokeinterface java.util.List.size:()I
istore 5
start local 5 21: iload 3
istore 6
start local 6 22: goto 28
23: StackMap locals: java.util.List int int
StackMap stack:
aload 4
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 7
start local 7 24: aload 7
instanceof java.lang.Integer
ifeq 26
aload 7
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ifne 26
25: goto 27
26: StackMap locals: java.lang.Object
StackMap stack:
aload 1
invokeinterface java.util.List.size:()I
aload 2
invokeinterface java.util.List.size:()I
isub
ireturn
end local 7 27: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
28: iload 6
iload 5
if_icmplt 23
end local 6 29: 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 30 0 this Ljava/lang/module/ModuleDescriptor$Version;
0 30 1 ts1 Ljava/util/List<Ljava/lang/Object;>;
0 30 2 ts2 Ljava/util/List<Ljava/lang/Object;>;
1 30 3 n I
2 17 4 i I
4 15 5 o1 Ljava/lang/Object;
5 15 6 o2 Ljava/lang/Object;
8 11 7 c I
12 15 7 c I
20 30 4 rest Ljava/util/List<Ljava/lang/Object;>;
21 30 5 e I
22 29 6 i I
24 27 7 o Ljava/lang/Object;
Signature: (Ljava/util/List<Ljava/lang/Object;>;Ljava/util/List<Ljava/lang/Object;>;)I
MethodParameters:
Name Flags
ts1
ts2
public int compareTo(java.lang.module.ModuleDescriptor$Version);
descriptor: (Ljava/lang/module/ModuleDescriptor$Version;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield java.lang.module.ModuleDescriptor$Version.sequence:Ljava/util/List;
aload 1
getfield java.lang.module.ModuleDescriptor$Version.sequence:Ljava/util/List;
invokevirtual java.lang.module.ModuleDescriptor$Version.compareTokens:(Ljava/util/List;Ljava/util/List;)I
istore 2
start local 2 1: iload 2
ifeq 2
iload 2
ireturn
2: StackMap locals: int
StackMap stack:
aload 0
getfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 4
3: aload 1
getfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 5
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
getfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 5
iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
aload 1
getfield java.lang.module.ModuleDescriptor$Version.pre:Ljava/util/List;
invokevirtual java.lang.module.ModuleDescriptor$Version.compareTokens:(Ljava/util/List;Ljava/util/List;)I
istore 2
6: iload 2
ifeq 7
iload 2
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.lang.module.ModuleDescriptor$Version.build:Ljava/util/List;
aload 1
getfield java.lang.module.ModuleDescriptor$Version.build:Ljava/util/List;
invokevirtual java.lang.module.ModuleDescriptor$Version.compareTokens:(Ljava/util/List;Ljava/util/List;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/module/ModuleDescriptor$Version;
0 8 1 that Ljava/lang/module/ModuleDescriptor$Version;
1 8 2 c I
MethodParameters:
Name Flags
that
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.lang.module.ModuleDescriptor$Version
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast java.lang.module.ModuleDescriptor$Version
invokevirtual java.lang.module.ModuleDescriptor$Version.compareTo:(Ljava/lang/module/ModuleDescriptor$Version;)I
ifne 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/module/ModuleDescriptor$Version;
0 4 1 ob Ljava/lang/Object;
MethodParameters:
Name Flags
ob
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.module.ModuleDescriptor$Version.version:Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/module/ModuleDescriptor$Version;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.module.ModuleDescriptor$Version.version:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/module/ModuleDescriptor$Version;
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.module.ModuleDescriptor$Version
invokevirtual java.lang.module.ModuleDescriptor$Version.compareTo:(Ljava/lang/module/ModuleDescriptor$Version;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/module/ModuleDescriptor$Version;>;
SourceFile: "ModuleDescriptor.java"
NestHost: java.lang.module.ModuleDescriptor
InnerClasses:
public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor