final class jdk.jpackage.internal.DottedVersion implements java.lang.Comparable<java.lang.String>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.jpackage.internal.DottedVersion
super_class: java.lang.Object
{
private final java.math.BigInteger[] components;
descriptor: [Ljava/math/BigInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String value;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean greedy;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.regex.Pattern DIGITS;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "\\d+"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic jdk.jpackage.internal.DottedVersion.DIGITS:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield jdk.jpackage.internal.DottedVersion.greedy:Z
2: aload 0
aload 1
aload 0
getfield jdk.jpackage.internal.DottedVersion.greedy:Z
invokestatic jdk.jpackage.internal.DottedVersion.parseVersionString:(Ljava/lang/String;Z)[Ljava/math/BigInteger;
putfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
3: aload 0
aload 1
putfield jdk.jpackage.internal.DottedVersion.value:Ljava/lang/String;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/jpackage/internal/DottedVersion;
0 5 1 version Ljava/lang/String;
MethodParameters:
Name Flags
version
private void <init>(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 2
putfield jdk.jpackage.internal.DottedVersion.greedy:Z
2: aload 0
aload 1
iload 2
invokestatic jdk.jpackage.internal.DottedVersion.parseVersionString:(Ljava/lang/String;Z)[Ljava/math/BigInteger;
putfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
3: aload 0
aload 1
putfield jdk.jpackage.internal.DottedVersion.value:Ljava/lang/String;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/jpackage/internal/DottedVersion;
0 5 1 version Ljava/lang/String;
0 5 2 greedy Z
MethodParameters:
Name Flags
version
greedy
static jdk.jpackage.internal.DottedVersion greedy(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/jpackage/internal/DottedVersion;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new jdk.jpackage.internal.DottedVersion
dup
aload 0
invokespecial jdk.jpackage.internal.DottedVersion.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 version Ljava/lang/String;
MethodParameters:
Name Flags
version
static jdk.jpackage.internal.DottedVersion lazy(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/jpackage/internal/DottedVersion;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new jdk.jpackage.internal.DottedVersion
dup
aload 0
iconst_0
invokespecial jdk.jpackage.internal.DottedVersion.<init>:(Ljava/lang/String;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 version Ljava/lang/String;
MethodParameters:
Name Flags
version
public int compareTo(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
aload 0
getfield jdk.jpackage.internal.DottedVersion.greedy:Z
invokestatic jdk.jpackage.internal.DottedVersion.parseVersionString:(Ljava/lang/String;Z)[Ljava/math/BigInteger;
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 14
4: StackMap locals: int java.math.BigInteger[] int
StackMap stack:
iload 4
aload 0
getfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
arraylength
if_icmpge 7
5: aload 0
getfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
iload 4
aaload
astore 5
start local 5 6: goto 8
end local 5 7: StackMap locals:
StackMap stack:
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 5
start local 5 8: StackMap locals: java.math.BigInteger
StackMap stack:
iload 4
aload 3
arraylength
if_icmpge 11
9: aload 3
iload 4
aaload
astore 6
start local 6 10: goto 12
end local 6 11: StackMap locals:
StackMap stack:
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 6
start local 6 12: StackMap locals: java.math.BigInteger
StackMap stack:
aload 5
aload 6
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
istore 2
end local 6 end local 5 13: iinc 4 1
14: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
arraylength
aload 3
arraylength
invokestatic java.lang.Math.max:(II)I
if_icmpge 16
15: iload 2
ifeq 4
end local 4 16: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/jpackage/internal/DottedVersion;
0 17 1 o Ljava/lang/String;
1 17 2 result I
2 17 3 otherComponents [Ljava/math/BigInteger;
3 16 4 i I
6 7 5 x Ljava/math/BigInteger;
8 13 5 x Ljava/math/BigInteger;
10 11 6 y Ljava/math/BigInteger;
12 13 6 y Ljava/math/BigInteger;
MethodParameters:
Name Flags
o
private static java.math.BigInteger[] parseVersionString(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)[Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifeq 7
2: iload 1
ifne 4
3: iconst_1
anewarray java.math.BigInteger
dup
iconst_0
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
aastore
areturn
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
5: ldc "error.version-string-empty"
6: invokestatic jdk.jpackage.internal.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iconst_m1
istore 2
start local 2 8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 9: aload 0
ldc "\\."
iconst_m1
invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 41
StackMap locals: java.lang.String int int java.util.List top int int java.lang.String[]
StackMap stack:
10: aload 7
iload 5
aaload
astore 4
start local 4 11: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifeq 19
12: iload 1
ifne 14
13: goto 42
14: StackMap locals: java.lang.String int int java.util.List java.lang.String int int java.lang.String[]
StackMap stack:
new java.lang.IllegalArgumentException
dup
15: ldc "error.version-string-zero-length-component"
16: invokestatic jdk.jpackage.internal.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
17: aload 0
aastore
18: invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
getstatic jdk.jpackage.internal.DottedVersion.DIGITS:Ljava/util/regex/Pattern;
aload 4
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 27
20: iload 1
ifne 22
21: goto 42
22: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
23: ldc "error.version-string-invalid-component"
24: invokestatic jdk.jpackage.internal.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
iconst_2
anewarray java.lang.Object
dup
iconst_0
25: aload 0
aastore
dup
iconst_1
aload 4
aastore
26: invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
new java.math.BigInteger
dup
aload 4
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;)V
astore 8
start local 8 28: goto 37
end local 8 StackMap locals:
StackMap stack: java.lang.NumberFormatException
29: pop
30: iload 1
ifne 32
31: goto 42
32: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
33: ldc "error.version-string-invalid-component"
34: invokestatic jdk.jpackage.internal.I18N.getString:(Ljava/lang/String;)Ljava/lang/String;
iconst_2
anewarray java.lang.Object
dup
iconst_0
35: aload 0
aastore
dup
iconst_1
aload 4
aastore
36: invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 8 37: StackMap locals: java.math.BigInteger
StackMap stack:
aload 8
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
if_acmpeq 39
38: aload 3
invokeinterface java.util.List.size:()I
istore 2
39: StackMap locals:
StackMap stack:
aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 4 40: iinc 5 1
StackMap locals: java.lang.String int int java.util.List top int int java.lang.String[]
StackMap stack:
41: iload 5
iload 6
if_icmplt 10
42: StackMap locals: java.lang.String int int java.util.List
StackMap stack:
iload 2
iconst_1
iadd
aload 3
invokeinterface java.util.List.size:()I
if_icmpeq 44
43: aload 3
iconst_0
iload 2
iconst_1
iadd
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 3
44: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 46
45: aload 3
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
46: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
47: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
jdk/jpackage/internal/DottedVersion.lambda$0(I)[Ljava/math/BigInteger; (6)
(I)[Ljava/math/BigInteger;
invokeinterface java.util.List.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.math.BigInteger[]
48: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 version Ljava/lang/String;
0 49 1 greedy Z
8 49 2 lastNotZeroIdx I
9 49 3 components Ljava/util/List<Ljava/math/BigInteger;>;
11 40 4 component Ljava/lang/String;
28 29 8 num Ljava/math/BigInteger;
37 40 8 num Ljava/math/BigInteger;
Exception table:
from to target type
27 28 29 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
version
greedy
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 jdk.jpackage.internal.DottedVersion.value:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jpackage/internal/DottedVersion;
java.math.BigInteger[] getComponents();
descriptor: ()[Ljava/math/BigInteger;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.jpackage.internal.DottedVersion.components:[Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/jpackage/internal/DottedVersion;
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.String
invokevirtual jdk.jpackage.internal.DottedVersion.compareTo:(Ljava/lang/String;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static java.math.BigInteger[] lambda$0(int);
descriptor: (I)[Ljava/math/BigInteger;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray java.math.BigInteger
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Ljava/lang/String;>;
SourceFile: "DottedVersion.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles