public final class java.time.Duration implements java.time.temporal.TemporalAmount, java.lang.Comparable<java.time.Duration>, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.time.Duration
super_class: java.lang.Object
{
public static final java.time.Duration ZERO;
descriptor: Ljava/time/Duration;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3078945930695997490
private static final java.math.BigInteger BI_NANOS_PER_SECOND;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final long seconds;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int nanos;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$java$time$temporal$ChronoUnit;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new java.time.Duration
dup
lconst_0
iconst_0
invokespecial java.time.Duration.<init>:(JI)V
putstatic java.time.Duration.ZERO:Ljava/time/Duration;
1: ldc 1000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic java.time.Duration.BI_NANOS_PER_SECOND:Ljava/math/BigInteger;
return
LocalVariableTable:
Start End Slot Name Signature
public static java.time.Duration ofDays(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
ldc 86400
invokestatic java.lang.Math.multiplyExact:(JI)J
iconst_0
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 days J
MethodParameters:
Name Flags
days
public static java.time.Duration ofHours(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
sipush 3600
invokestatic java.lang.Math.multiplyExact:(JI)J
iconst_0
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hours J
MethodParameters:
Name Flags
hours
public static java.time.Duration ofMinutes(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
bipush 60
invokestatic java.lang.Math.multiplyExact:(JI)J
iconst_0
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 minutes J
MethodParameters:
Name Flags
minutes
public static java.time.Duration ofSeconds(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: lload 0
iconst_0
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 seconds J
MethodParameters:
Name Flags
seconds
public static java.time.Duration ofSeconds(long, long);
descriptor: (JJ)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 2 0: lload 0
lload 2
ldc 1000000000
invokestatic java.lang.Math.floorDiv:(JJ)J
invokestatic java.lang.Math.addExact:(JJ)J
lstore 4
start local 4 1: lload 2
ldc 1000000000
invokestatic java.lang.Math.floorMod:(JJ)J
l2i
istore 6
start local 6 2: lload 4
iload 6
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 6 end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 seconds J
0 3 2 nanoAdjustment J
1 3 4 secs J
2 3 6 nos I
MethodParameters:
Name Flags
seconds
nanoAdjustment
public static java.time.Duration ofMillis(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lload 0
ldc 1000
ldiv
lstore 2
start local 2 1: lload 0
ldc 1000
lrem
l2i
istore 4
start local 4 2: iload 4
ifge 5
3: iinc 4 1000
4: lload 2
lconst_1
lsub
lstore 2
5: StackMap locals: long int
StackMap stack:
lload 2
iload 4
ldc 1000000
imul
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 millis J
1 6 2 secs J
2 6 4 mos I
MethodParameters:
Name Flags
millis
public static java.time.Duration ofNanos(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lload 0
ldc 1000000000
ldiv
lstore 2
start local 2 1: lload 0
ldc 1000000000
lrem
l2i
istore 4
start local 4 2: iload 4
ifge 5
3: iload 4
i2l
ldc 1000000000
ladd
l2i
istore 4
4: lload 2
lconst_1
lsub
lstore 2
5: StackMap locals: long int
StackMap stack:
lload 2
iload 4
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 nanos J
1 6 2 secs J
2 6 4 nos I
MethodParameters:
Name Flags
nanos
public static java.time.Duration of(long, java.time.temporal.TemporalUnit);
descriptor: (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: getstatic java.time.Duration.ZERO:Ljava/time/Duration;
lload 0
aload 2
invokevirtual java.time.Duration.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 amount J
0 1 2 unit Ljava/time/temporal/TemporalUnit;
MethodParameters:
Name Flags
amount
unit
public static java.time.Duration from(java.time.temporal.TemporalAmount);
descriptor: (Ljava/time/temporal/TemporalAmount;)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
ldc "amount"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: getstatic java.time.Duration.ZERO:Ljava/time/Duration;
astore 1
start local 1 2: aload 0
invokeinterface java.time.temporal.TemporalAmount.getUnits:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: java.time.temporal.TemporalAmount java.time.Duration top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.time.temporal.TemporalUnit
astore 2
start local 2 4: aload 1
aload 0
aload 2
invokeinterface java.time.temporal.TemporalAmount.get:(Ljava/time/temporal/TemporalUnit;)J
aload 2
invokevirtual java.time.Duration.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
astore 1
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 amount Ljava/time/temporal/TemporalAmount;
2 7 1 duration Ljava/time/Duration;
4 5 2 unit Ljava/time/temporal/TemporalUnit;
MethodParameters:
Name Flags
amount
public static java.time.Duration parse(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=24, args_size=1
start local 0 0: aload 0
ldc "text"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: getstatic java.time.Duration$Lazy.PATTERN:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1
start local 1 2: aload 1
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 30
3: aload 0
aload 1
iconst_3
invokevirtual java.util.regex.Matcher.start:(I)I
aload 1
iconst_3
invokevirtual java.util.regex.Matcher.end:(I)I
bipush 84
invokestatic java.time.Duration.charMatch:(Ljava/lang/CharSequence;IIC)Z
ifne 30
4: aload 0
aload 1
iconst_1
invokevirtual java.util.regex.Matcher.start:(I)I
aload 1
iconst_1
invokevirtual java.util.regex.Matcher.end:(I)I
bipush 45
invokestatic java.time.Duration.charMatch:(Ljava/lang/CharSequence;IIC)Z
istore 2
start local 2 5: aload 1
iconst_2
invokevirtual java.util.regex.Matcher.start:(I)I
istore 3
start local 3 6: aload 1
iconst_2
invokevirtual java.util.regex.Matcher.end:(I)I
istore 4
start local 4 7: aload 1
iconst_4
invokevirtual java.util.regex.Matcher.start:(I)I
istore 5
start local 5 8: aload 1
iconst_4
invokevirtual java.util.regex.Matcher.end:(I)I
istore 6
start local 6 9: aload 1
iconst_5
invokevirtual java.util.regex.Matcher.start:(I)I
istore 7
start local 7 10: aload 1
iconst_5
invokevirtual java.util.regex.Matcher.end:(I)I
istore 8
start local 8 11: aload 1
bipush 6
invokevirtual java.util.regex.Matcher.start:(I)I
istore 9
start local 9 12: aload 1
bipush 6
invokevirtual java.util.regex.Matcher.end:(I)I
istore 10
start local 10 13: aload 1
bipush 7
invokevirtual java.util.regex.Matcher.start:(I)I
istore 11
start local 11 14: aload 1
bipush 7
invokevirtual java.util.regex.Matcher.end:(I)I
istore 12
start local 12 15: iload 3
ifge 16
iload 5
ifge 16
iload 7
ifge 16
iload 9
iflt 30
16: StackMap locals: java.lang.CharSequence java.util.regex.Matcher int int int int int int int int int int int
StackMap stack:
aload 0
iload 3
iload 4
ldc 86400
ldc "days"
invokestatic java.time.Duration.parseNumber:(Ljava/lang/CharSequence;IIILjava/lang/String;)J
lstore 13
start local 13 17: aload 0
iload 5
iload 6
sipush 3600
ldc "hours"
invokestatic java.time.Duration.parseNumber:(Ljava/lang/CharSequence;IIILjava/lang/String;)J
lstore 15
start local 15 18: aload 0
iload 7
iload 8
bipush 60
ldc "minutes"
invokestatic java.time.Duration.parseNumber:(Ljava/lang/CharSequence;IIILjava/lang/String;)J
lstore 17
start local 17 19: aload 0
iload 9
iload 10
iconst_1
ldc "seconds"
invokestatic java.time.Duration.parseNumber:(Ljava/lang/CharSequence;IIILjava/lang/String;)J
lstore 19
start local 19 20: iload 9
iflt 21
aload 0
iload 9
invokeinterface java.lang.CharSequence.charAt:(I)C
bipush 45
if_icmpne 21
iconst_1
goto 22
StackMap locals: java.lang.CharSequence java.util.regex.Matcher int int int int int int int int int int int long long long long
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 21
start local 21 23: aload 0
iload 11
iload 12
iload 21
ifeq 24
iconst_m1
goto 25
StackMap locals: java.lang.CharSequence java.util.regex.Matcher int int int int int int int int int int int long long long long int
StackMap stack: java.lang.CharSequence int int
24: iconst_1
StackMap locals: java.lang.CharSequence java.util.regex.Matcher int int int int int int int int int int int long long long long int
StackMap stack: java.lang.CharSequence int int int
25: invokestatic java.time.Duration.parseFraction:(Ljava/lang/CharSequence;III)I
istore 22
start local 22 26: iload 2
lload 13
lload 15
lload 17
lload 19
iload 22
invokestatic java.time.Duration.create:(ZJJJJI)Ljava/time/Duration;
27: areturn
28: StackMap locals: java.lang.CharSequence java.util.regex.Matcher int int int int int int int int int int int long long long long int int
StackMap stack: java.lang.ArithmeticException
astore 23
start local 23 29: new java.time.format.DateTimeParseException
dup
ldc "Text cannot be parsed to a Duration: overflow"
aload 0
iconst_0
invokespecial java.time.format.DateTimeParseException.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;I)V
aload 23
invokevirtual java.time.format.DateTimeParseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.time.format.DateTimeParseException
athrow
end local 23 end local 22 end local 21 end local 19 end local 17 end local 15 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 30: StackMap locals: java.lang.CharSequence java.util.regex.Matcher
StackMap stack:
new java.time.format.DateTimeParseException
dup
ldc "Text cannot be parsed to a Duration"
aload 0
iconst_0
invokespecial java.time.format.DateTimeParseException.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;I)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 text Ljava/lang/CharSequence;
2 31 1 matcher Ljava/util/regex/Matcher;
5 30 2 negate Z
6 30 3 dayStart I
7 30 4 dayEnd I
8 30 5 hourStart I
9 30 6 hourEnd I
10 30 7 minuteStart I
11 30 8 minuteEnd I
12 30 9 secondStart I
13 30 10 secondEnd I
14 30 11 fractionStart I
15 30 12 fractionEnd I
17 30 13 daysAsSecs J
18 30 15 hoursAsSecs J
19 30 17 minsAsSecs J
20 30 19 seconds J
23 30 21 negativeSecs Z
26 30 22 nanos I
29 30 23 ex Ljava/lang/ArithmeticException;
Exception table:
from to target type
26 27 28 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
text
private static boolean charMatch(java.lang.CharSequence, int, int, char);
descriptor: (Ljava/lang/CharSequence;IIC)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iflt 1
iload 2
iload 1
iconst_1
iadd
if_icmpne 1
aload 0
iload 1
invokeinterface java.lang.CharSequence.charAt:(I)C
iload 3
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 text Ljava/lang/CharSequence;
0 2 1 start I
0 2 2 end I
0 2 3 c C
MethodParameters:
Name Flags
text
start
end
c
private static long parseNumber(java.lang.CharSequence, int, int, int, java.lang.String);
descriptor: (Ljava/lang/CharSequence;IIILjava/lang/String;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iflt 1
iload 2
ifge 2
1: StackMap locals:
StackMap stack:
lconst_0
lreturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
bipush 10
invokestatic java.lang.Long.parseLong:(Ljava/lang/CharSequence;III)J
lstore 5
start local 5 3: lload 5
iload 3
invokestatic java.lang.Math.multiplyExact:(JI)J
4: lreturn
end local 5 5: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 5
start local 5 6: new java.time.format.DateTimeParseException
dup
new java.lang.StringBuilder
dup
ldc "Text cannot be parsed to a Duration: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
iconst_0
invokespecial java.time.format.DateTimeParseException.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;I)V
aload 5
invokevirtual java.time.format.DateTimeParseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.time.format.DateTimeParseException
athrow
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 7 0 text Ljava/lang/CharSequence;
0 7 1 start I
0 7 2 end I
0 7 3 multiplier I
0 7 4 errorText Ljava/lang/String;
3 5 5 val J
6 7 5 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
2 4 5 Class java.lang.NumberFormatException
2 4 5 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
text
start
end
multiplier
errorText
private static int parseFraction(java.lang.CharSequence, int, int, int);
descriptor: (Ljava/lang/CharSequence;III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iflt 1
iload 2
iflt 1
iload 2
iload 1
isub
ifne 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
bipush 10
invokestatic java.lang.Integer.parseInt:(Ljava/lang/CharSequence;III)I
istore 4
start local 4 3: iload 2
iload 1
isub
istore 5
start local 5 4: goto 7
5: StackMap locals: int int
StackMap stack:
iload 4
bipush 10
imul
istore 4
6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
bipush 9
if_icmplt 5
end local 5 8: iload 4
iload 3
imul
9: ireturn
end local 4 10: StackMap locals: java.lang.CharSequence int int int
StackMap stack: java.lang.RuntimeException
astore 4
start local 4 11: new java.time.format.DateTimeParseException
dup
ldc "Text cannot be parsed to a Duration: fraction"
aload 0
iconst_0
invokespecial java.time.format.DateTimeParseException.<init>:(Ljava/lang/String;Ljava/lang/CharSequence;I)V
aload 4
invokevirtual java.time.format.DateTimeParseException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.time.format.DateTimeParseException
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 text Ljava/lang/CharSequence;
0 12 1 start I
0 12 2 end I
0 12 3 negate I
3 10 4 fraction I
4 8 5 i I
11 12 4 ex Ljava/lang/RuntimeException;
Exception table:
from to target type
2 9 10 Class java.lang.NumberFormatException
2 9 10 Class java.lang.ArithmeticException
MethodParameters:
Name Flags
text
start
end
negate
private static java.time.Duration create(boolean, long, long, long, long, int);
descriptor: (ZJJJJI)Ljava/time/Duration;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, args_size=6
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 0: lload 1
lload 3
lload 5
lload 7
invokestatic java.lang.Math.addExact:(JJ)J
invokestatic java.lang.Math.addExact:(JJ)J
invokestatic java.lang.Math.addExact:(JJ)J
lstore 10
start local 10 1: iload 0
ifeq 3
2: lload 10
iload 9
i2l
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
invokevirtual java.time.Duration.negated:()Ljava/time/Duration;
areturn
3: StackMap locals: long
StackMap stack:
lload 10
iload 9
i2l
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
areturn
end local 10 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 negate Z
0 4 1 daysAsSecs J
0 4 3 hoursAsSecs J
0 4 5 minsAsSecs J
0 4 7 secs J
0 4 9 nanos I
1 4 10 seconds J
MethodParameters:
Name Flags
negate
daysAsSecs
hoursAsSecs
minsAsSecs
secs
nanos
public static java.time.Duration between(java.time.temporal.Temporal, java.time.temporal.Temporal);
descriptor: (Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.until:(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.RuntimeException
pop
3: aload 0
aload 1
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.until:(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
lstore 2
start local 2 4: aload 1
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
invokeinterface java.time.temporal.Temporal.getLong:(Ljava/time/temporal/TemporalField;)J
aload 0
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
invokeinterface java.time.temporal.Temporal.getLong:(Ljava/time/temporal/TemporalField;)J
lsub
lstore 4
start local 4 5: lload 2
lconst_0
lcmp
ifle 8
lload 4
lconst_0
lcmp
ifge 8
6: lload 2
lconst_1
ladd
lstore 2
7: goto 13
StackMap locals: long long
StackMap stack:
8: lload 2
lconst_0
lcmp
ifge 13
lload 4
lconst_0
lcmp
ifle 13
9: lload 2
lconst_1
lsub
lstore 2
10: goto 13
end local 4 StackMap locals: java.time.temporal.Temporal java.time.temporal.Temporal long
StackMap stack: java.time.DateTimeException
11: pop
12: lconst_0
lstore 4
start local 4 13: StackMap locals: long
StackMap stack:
lload 2
lload 4
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 startInclusive Ljava/time/temporal/Temporal;
0 14 1 endExclusive Ljava/time/temporal/Temporal;
4 14 2 secs J
5 11 4 nanos J
13 14 4 nanos J
Exception table:
from to target type
0 1 2 Class java.time.DateTimeException
0 1 2 Class java.lang.ArithmeticException
4 10 11 Class java.time.DateTimeException
MethodParameters:
Name Flags
startInclusive
endExclusive
private static java.time.Duration create(long, int);
descriptor: (JI)Ljava/time/Duration;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 2 0: lload 0
iload 2
i2l
lor
lconst_0
lcmp
ifne 2
1: getstatic java.time.Duration.ZERO:Ljava/time/Duration;
areturn
2: StackMap locals:
StackMap stack:
new java.time.Duration
dup
lload 0
iload 2
invokespecial java.time.Duration.<init>:(JI)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 seconds J
0 3 2 nanoAdjustment I
MethodParameters:
Name Flags
seconds
nanoAdjustment
private void <init>(long, int);
descriptor: (JI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lload 1
putfield java.time.Duration.seconds:J
2: aload 0
iload 3
putfield java.time.Duration.nanos:I
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/time/Duration;
0 4 1 seconds J
0 4 3 nanos I
MethodParameters:
Name Flags
seconds
nanos
public long get(java.time.temporal.TemporalUnit);
descriptor: (Ljava/time/temporal/TemporalUnit;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
if_acmpne 2
1: aload 0
getfield java.time.Duration.seconds:J
lreturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
if_acmpne 4
3: aload 0
getfield java.time.Duration.nanos:I
i2l
lreturn
4: StackMap locals:
StackMap stack:
new java.time.temporal.UnsupportedTemporalTypeException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported unit: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 unit Ljava/time/temporal/TemporalUnit;
MethodParameters:
Name Flags
unit
public java.util.List<java.time.temporal.TemporalUnit> getUnits();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic java.time.Duration$DurationUnits.UNITS:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
Signature: ()Ljava/util/List<Ljava/time/temporal/TemporalUnit;>;
public boolean isZero();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
aload 0
getfield java.time.Duration.nanos:I
i2l
lor
lconst_0
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/time/Duration;
public boolean isNegative();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/time/Duration;
public long getSeconds();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int getNano();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.nanos:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public java.time.Duration withSeconds(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
getfield java.time.Duration.nanos:I
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 seconds J
MethodParameters:
Name Flags
seconds
public java.time.Duration withNanos(int);
descriptor: (I)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
iload 1
i2l
invokevirtual java.time.temporal.ChronoField.checkValidIntValue:(J)I
pop
1: aload 0
getfield java.time.Duration.seconds:J
iload 1
invokestatic java.time.Duration.create:(JI)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/time/Duration;
0 2 1 nanoOfSecond I
MethodParameters:
Name Flags
nanoOfSecond
public java.time.Duration plus(java.time.Duration);
descriptor: (Ljava/time/Duration;)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.time.Duration.getSeconds:()J
aload 1
invokevirtual java.time.Duration.getNano:()I
i2l
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 duration Ljava/time/Duration;
MethodParameters:
Name Flags
duration
public java.time.Duration plus(long, java.time.temporal.TemporalUnit);
descriptor: (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 3
ldc "unit"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 3
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
if_acmpne 3
2: aload 0
lload 1
ldc 86400
invokestatic java.lang.Math.multiplyExact:(JI)J
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.time.temporal.TemporalUnit.isDurationEstimated:()Z
ifeq 5
4: new java.time.temporal.UnsupportedTemporalTypeException
dup
ldc "Unit must not have an estimated duration"
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifne 7
6: aload 0
areturn
7: StackMap locals:
StackMap stack:
aload 3
instanceof java.time.temporal.ChronoUnit
ifeq 14
8: invokestatic java.time.Duration.$SWITCH_TABLE$java$time$temporal$ChronoUnit:()[I
aload 3
checkcast java.time.temporal.ChronoUnit
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 9
2: 10
3: 11
4: 12
default: 13
}
9: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
areturn
10: StackMap locals:
StackMap stack:
aload 0
lload 1
ldc 1000000000
ldiv
ldc 1000
lmul
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
lload 1
ldc 1000000000
lrem
ldc 1000
lmul
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
areturn
11: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual java.time.Duration.plusMillis:(J)Ljava/time/Duration;
areturn
12: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
areturn
13: StackMap locals:
StackMap stack:
aload 0
aload 3
invokeinterface java.time.temporal.TemporalUnit.getDuration:()Ljava/time/Duration;
getfield java.time.Duration.seconds:J
lload 1
invokestatic java.lang.Math.multiplyExact:(JJ)J
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
areturn
14: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.time.temporal.TemporalUnit.getDuration:()Ljava/time/Duration;
lload 1
invokevirtual java.time.Duration.multipliedBy:(J)Ljava/time/Duration;
astore 4
start local 4 15: aload 0
aload 4
invokevirtual java.time.Duration.getSeconds:()J
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
aload 4
invokevirtual java.time.Duration.getNano:()I
i2l
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/time/Duration;
0 16 1 amountToAdd J
0 16 3 unit Ljava/time/temporal/TemporalUnit;
15 16 4 duration Ljava/time/Duration;
MethodParameters:
Name Flags
amountToAdd
unit
public java.time.Duration plusDays(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
ldc 86400
invokestatic java.lang.Math.multiplyExact:(JI)J
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 daysToAdd J
MethodParameters:
Name Flags
daysToAdd
public java.time.Duration plusHours(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
sipush 3600
invokestatic java.lang.Math.multiplyExact:(JI)J
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 hoursToAdd J
MethodParameters:
Name Flags
hoursToAdd
public java.time.Duration plusMinutes(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
bipush 60
invokestatic java.lang.Math.multiplyExact:(JI)J
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 minutesToAdd J
MethodParameters:
Name Flags
minutesToAdd
public java.time.Duration plusSeconds(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 secondsToAdd J
MethodParameters:
Name Flags
secondsToAdd
public java.time.Duration plusMillis(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
ldc 1000
ldiv
lload 1
ldc 1000
lrem
ldc 1000000
lmul
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 millisToAdd J
MethodParameters:
Name Flags
millisToAdd
public java.time.Duration plusNanos(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lconst_0
lload 1
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 nanosToAdd J
MethodParameters:
Name Flags
nanosToAdd
private java.time.Duration plus(long, long);
descriptor: (JJ)Ljava/time/Duration;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lload 3
lor
lconst_0
lcmp
ifne 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.seconds:J
lload 1
invokestatic java.lang.Math.addExact:(JJ)J
lstore 5
start local 5 3: lload 5
lload 3
ldc 1000000000
ldiv
invokestatic java.lang.Math.addExact:(JJ)J
lstore 5
4: lload 3
ldc 1000000000
lrem
lstore 3
5: aload 0
getfield java.time.Duration.nanos:I
i2l
lload 3
ladd
lstore 7
start local 7 6: lload 5
lload 7
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
areturn
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/time/Duration;
0 7 1 secondsToAdd J
0 7 3 nanosToAdd J
3 7 5 epochSec J
6 7 7 nanoAdjustment J
MethodParameters:
Name Flags
secondsToAdd
nanosToAdd
public java.time.Duration minus(java.time.Duration);
descriptor: (Ljava/time/Duration;)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.time.Duration.getSeconds:()J
lstore 2
start local 2 1: aload 1
invokevirtual java.time.Duration.getNano:()I
istore 4
start local 4 2: lload 2
ldc -9223372036854775808
lcmp
ifne 4
3: aload 0
ldc 9223372036854775807
iload 4
ineg
i2l
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
lconst_1
lconst_0
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
4: StackMap locals: long int
StackMap stack:
aload 0
lload 2
lneg
iload 4
ineg
i2l
invokevirtual java.time.Duration.plus:(JJ)Ljava/time/Duration;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 duration Ljava/time/Duration;
1 5 2 secsToSubtract J
2 5 4 nanosToSubtract I
MethodParameters:
Name Flags
duration
public java.time.Duration minus(long, java.time.temporal.TemporalUnit);
descriptor: (JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
aload 3
invokevirtual java.time.Duration.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
lconst_1
aload 3
invokevirtual java.time.Duration.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
aload 3
invokevirtual java.time.Duration.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 amountToSubtract J
0 3 3 unit Ljava/time/temporal/TemporalUnit;
MethodParameters:
Name Flags
amountToSubtract
unit
public java.time.Duration minusDays(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusDays:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusDays:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusDays:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 daysToSubtract J
MethodParameters:
Name Flags
daysToSubtract
public java.time.Duration minusHours(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusHours:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusHours:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusHours:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 hoursToSubtract J
MethodParameters:
Name Flags
hoursToSubtract
public java.time.Duration minusMinutes(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusMinutes:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusMinutes:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusMinutes:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 minutesToSubtract J
MethodParameters:
Name Flags
minutesToSubtract
public java.time.Duration minusSeconds(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusSeconds:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 secondsToSubtract J
MethodParameters:
Name Flags
secondsToSubtract
public java.time.Duration minusMillis(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusMillis:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusMillis:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusMillis:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 millisToSubtract J
MethodParameters:
Name Flags
millisToSubtract
public java.time.Duration minusNanos(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc -9223372036854775808
lcmp
ifne 1
aload 0
ldc 9223372036854775807
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
lconst_1
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
lneg
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 nanosToSubtract J
MethodParameters:
Name Flags
nanosToSubtract
public java.time.Duration multipliedBy(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 2
1: getstatic java.time.Duration.ZERO:Ljava/time/Duration;
areturn
2: StackMap locals:
StackMap stack:
lload 1
lconst_1
lcmp
ifne 4
3: aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.time.Duration.toBigDecimalSeconds:()Ljava/math/BigDecimal;
lload 1
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
invokestatic java.time.Duration.create:(Ljava/math/BigDecimal;)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 multiplicand J
MethodParameters:
Name Flags
multiplicand
public java.time.Duration dividedBy(long);
descriptor: (J)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "Cannot divide by zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
lload 1
lconst_1
lcmp
ifne 4
3: aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.time.Duration.toBigDecimalSeconds:()Ljava/math/BigDecimal;
lload 1
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
invokestatic java.time.Duration.create:(Ljava/math/BigDecimal;)Ljava/time/Duration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 divisor J
MethodParameters:
Name Flags
divisor
public long dividedBy(java.time.Duration);
descriptor: (Ljava/time/Duration;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "divisor"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.time.Duration.toBigDecimalSeconds:()Ljava/math/BigDecimal;
astore 2
start local 2 2: aload 1
invokevirtual java.time.Duration.toBigDecimalSeconds:()Ljava/math/BigDecimal;
astore 3
start local 3 3: aload 2
aload 3
invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.longValueExact:()J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/time/Duration;
0 4 1 divisor Ljava/time/Duration;
2 4 2 dividendBigD Ljava/math/BigDecimal;
3 4 3 divisorBigD Ljava/math/BigDecimal;
MethodParameters:
Name Flags
divisor
private java.math.BigDecimal toBigDecimalSeconds();
descriptor: ()Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
aload 0
getfield java.time.Duration.nanos:I
i2l
bipush 9
invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
private static java.time.Duration create(java.math.BigDecimal);
descriptor: (Ljava/math/BigDecimal;)Ljava/time/Duration;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
bipush 9
invokevirtual java.math.BigDecimal.movePointRight:(I)Ljava/math/BigDecimal;
invokevirtual java.math.BigDecimal.toBigIntegerExact:()Ljava/math/BigInteger;
astore 1
start local 1 1: aload 1
getstatic java.time.Duration.BI_NANOS_PER_SECOND:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
astore 2
start local 2 2: aload 2
iconst_0
aaload
invokevirtual java.math.BigInteger.bitLength:()I
bipush 63
if_icmple 4
3: new java.lang.ArithmeticException
dup
new java.lang.StringBuilder
dup
ldc "Exceeds capacity of Duration: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.math.BigInteger java.math.BigInteger[]
StackMap stack:
aload 2
iconst_0
aaload
invokevirtual java.math.BigInteger.longValue:()J
aload 2
iconst_1
aaload
invokevirtual java.math.BigInteger.intValue:()I
i2l
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 seconds Ljava/math/BigDecimal;
1 5 1 nanos Ljava/math/BigInteger;
2 5 2 divRem [Ljava/math/BigInteger;
MethodParameters:
Name Flags
seconds
public java.time.Duration negated();
descriptor: ()Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc -1
invokevirtual java.time.Duration.multipliedBy:(J)Ljava/time/Duration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public java.time.Duration abs();
descriptor: ()Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.time.Duration.isNegative:()Z
ifeq 1
aload 0
invokevirtual java.time.Duration.negated:()Ljava/time/Duration;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
StackMap locals:
StackMap stack: java.time.Duration
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
public java.time.temporal.Temporal addTo(java.time.temporal.Temporal);
descriptor: (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifeq 2
1: aload 1
aload 0
getfield java.time.Duration.seconds:J
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.nanos:I
ifeq 4
3: aload 1
aload 0
getfield java.time.Duration.nanos:I
i2l
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 temporal Ljava/time/temporal/Temporal;
MethodParameters:
Name Flags
temporal
public java.time.temporal.Temporal subtractFrom(java.time.temporal.Temporal);
descriptor: (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifeq 2
1: aload 1
aload 0
getfield java.time.Duration.seconds:J
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
2: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.nanos:I
ifeq 4
3: aload 1
aload 0
getfield java.time.Duration.nanos:I
i2l
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/Duration;
0 5 1 temporal Ljava/time/temporal/Temporal;
MethodParameters:
Name Flags
temporal
public long toDays();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
ldc 86400
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public long toHours();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
ldc 3600
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public long toMinutes();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
ldc 60
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public long toSeconds();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public long toMillis();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
lstore 1
start local 1 1: aload 0
getfield java.time.Duration.nanos:I
i2l
lstore 3
start local 3 2: lload 1
lconst_0
lcmp
ifge 5
3: lload 1
lconst_1
ladd
lstore 1
4: lload 3
ldc 1000000000
lsub
lstore 3
5: StackMap locals: long long
StackMap stack:
lload 1
sipush 1000
invokestatic java.lang.Math.multiplyExact:(JI)J
lstore 5
start local 5 6: lload 5
lload 3
ldc 1000000
ldiv
invokestatic java.lang.Math.addExact:(JJ)J
lstore 5
7: lload 5
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/time/Duration;
1 8 1 tempSeconds J
2 8 3 tempNanos J
6 8 5 millis J
public long toNanos();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
lstore 1
start local 1 1: aload 0
getfield java.time.Duration.nanos:I
i2l
lstore 3
start local 3 2: lload 1
lconst_0
lcmp
ifge 5
3: lload 1
lconst_1
ladd
lstore 1
4: lload 3
ldc 1000000000
lsub
lstore 3
5: StackMap locals: long long
StackMap stack:
lload 1
ldc 1000000000
invokestatic java.lang.Math.multiplyExact:(JJ)J
lstore 5
start local 5 6: lload 5
lload 3
invokestatic java.lang.Math.addExact:(JJ)J
lstore 5
7: lload 5
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/time/Duration;
1 8 1 tempSeconds J
2 8 3 tempNanos J
6 8 5 totalNanos J
public long toDaysPart();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
ldc 86400
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int toHoursPart();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.time.Duration.toHours:()J
ldc 24
lrem
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int toMinutesPart();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.time.Duration.toMinutes:()J
ldc 60
lrem
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int toSecondsPart();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
ldc 60
lrem
l2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int toMillisPart();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.nanos:I
ldc 1000000
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public int toNanosPart();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.nanos:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public java.time.Duration truncatedTo(java.time.temporal.TemporalUnit);
descriptor: (Ljava/time/temporal/TemporalUnit;)Ljava/time/Duration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: aload 1
ldc "unit"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 1
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
if_acmpne 3
aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifge 2
aload 0
getfield java.time.Duration.nanos:I
ifne 3
2: StackMap locals:
StackMap stack:
new java.time.Duration
dup
aload 0
getfield java.time.Duration.seconds:J
iconst_0
invokespecial java.time.Duration.<init>:(JI)V
areturn
3: StackMap locals:
StackMap stack:
aload 1
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
if_acmpne 5
4: aload 0
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.time.temporal.TemporalUnit.getDuration:()Ljava/time/Duration;
astore 2
start local 2 6: aload 2
invokevirtual java.time.Duration.getSeconds:()J
ldc 86400
lcmp
ifle 8
7: new java.time.temporal.UnsupportedTemporalTypeException
dup
ldc "Unit is too large to be used for truncation"
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.time.Duration
StackMap stack:
aload 2
invokevirtual java.time.Duration.toNanos:()J
lstore 3
start local 3 9: ldc 86400000000000
lload 3
lrem
lconst_0
lcmp
ifeq 11
10: new java.time.temporal.UnsupportedTemporalTypeException
dup
ldc "Unit must divide into a standard day without remainder"
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: long
StackMap stack:
aload 0
getfield java.time.Duration.seconds:J
ldc 86400
lrem
ldc 1000000000
lmul
aload 0
getfield java.time.Duration.nanos:I
i2l
ladd
lstore 5
start local 5 12: lload 5
lload 3
ldiv
lload 3
lmul
lstore 7
start local 7 13: aload 0
lload 7
lload 5
lsub
invokevirtual java.time.Duration.plusNanos:(J)Ljava/time/Duration;
areturn
end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/time/Duration;
0 14 1 unit Ljava/time/temporal/TemporalUnit;
6 14 2 unitDur Ljava/time/Duration;
9 14 3 dur J
12 14 5 nod J
13 14 7 result J
MethodParameters:
Name Flags
unit
public int compareTo(java.time.Duration);
descriptor: (Ljava/time/Duration;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.time.Duration.seconds:J
aload 1
getfield java.time.Duration.seconds:J
invokestatic java.lang.Long.compare:(JJ)I
istore 2
start local 2 1: iload 2
ifeq 3
2: iload 2
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield java.time.Duration.nanos:I
aload 1
getfield java.time.Duration.nanos:I
isub
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/time/Duration;
0 4 1 otherDuration Ljava/time/Duration;
1 4 2 cmp I
MethodParameters:
Name Flags
otherDuration
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.time.Duration
ifeq 8
3: aload 1
checkcast java.time.Duration
astore 2
start local 2 4: aload 0
getfield java.time.Duration.seconds:J
aload 2
getfield java.time.Duration.seconds:J
lcmp
ifne 7
5: aload 0
getfield java.time.Duration.nanos:I
aload 2
getfield java.time.Duration.nanos:I
if_icmpne 7
6: iconst_1
ireturn
StackMap locals: java.time.Duration
StackMap stack:
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/time/Duration;
0 9 1 otherDuration Ljava/lang/Object;
4 8 2 other Ljava/time/Duration;
MethodParameters:
Name Flags
otherDuration
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.Duration.seconds:J
aload 0
getfield java.time.Duration.seconds:J
bipush 32
lushr
lxor
l2i
bipush 51
aload 0
getfield java.time.Duration.nanos:I
imul
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: aload 0
getstatic java.time.Duration.ZERO:Ljava/time/Duration;
if_acmpne 2
1: ldc "PT0S"
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.seconds:J
lstore 1
start local 1 3: aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifge 5
aload 0
getfield java.time.Duration.nanos:I
ifle 5
4: lload 1
lconst_1
ladd
lstore 1
5: StackMap locals: long
StackMap stack:
lload 1
ldc 3600
ldiv
lstore 3
start local 3 6: lload 1
ldc 3600
lrem
ldc 60
ldiv
l2i
istore 5
start local 5 7: lload 1
ldc 60
lrem
l2i
istore 6
start local 6 8: new java.lang.StringBuilder
dup
bipush 24
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 7
start local 7 9: aload 7
ldc "PT"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: lload 3
lconst_0
lcmp
ifeq 12
11: aload 7
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
bipush 72
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: StackMap locals: java.time.Duration long long int int java.lang.StringBuilder
StackMap stack:
iload 5
ifeq 14
13: aload 7
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 77
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: StackMap locals:
StackMap stack:
iload 6
ifne 16
aload 0
getfield java.time.Duration.nanos:I
ifne 16
aload 7
invokevirtual java.lang.StringBuilder.length:()I
iconst_2
if_icmple 16
15: aload 7
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
16: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifge 22
aload 0
getfield java.time.Duration.nanos:I
ifle 22
17: iload 6
ifne 20
18: aload 7
ldc "-0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: goto 23
20: StackMap locals:
StackMap stack:
aload 7
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
21: goto 23
22: StackMap locals:
StackMap stack:
aload 7
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
23: StackMap locals:
StackMap stack:
aload 0
getfield java.time.Duration.nanos:I
ifle 33
24: aload 7
invokevirtual java.lang.StringBuilder.length:()I
istore 8
start local 8 25: aload 0
getfield java.time.Duration.seconds:J
lconst_0
lcmp
ifge 28
26: aload 7
ldc 2000000000
aload 0
getfield java.time.Duration.nanos:I
i2l
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
27: goto 31
28: StackMap locals: int
StackMap stack:
aload 7
aload 0
getfield java.time.Duration.nanos:I
i2l
ldc 1000000000
ladd
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
29: goto 31
30: StackMap locals:
StackMap stack:
aload 7
aload 7
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.setLength:(I)V
31: StackMap locals:
StackMap stack:
aload 7
aload 7
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 48
if_icmpeq 30
32: aload 7
iload 8
bipush 46
invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
end local 8 33: StackMap locals:
StackMap stack:
aload 7
bipush 83
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
34: aload 7
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljava/time/Duration;
3 35 1 effectiveTotalSecs J
6 35 3 hours J
7 35 5 minutes I
8 35 6 secs I
9 35 7 buf Ljava/lang/StringBuilder;
25 33 8 pos I
private java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.time.Ser
dup
iconst_1
aload 0
invokespecial java.time.Ser.<init>:(BLjava/lang/Object;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.io.InvalidObjectException
dup
ldc "Deserialization via serialization delegate"
invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/Duration;
0 1 1 s Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.InvalidObjectException
MethodParameters:
Name Flags
s
void writeExternal(java.io.DataOutput);
descriptor: (Ljava/io/DataOutput;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield java.time.Duration.seconds:J
invokeinterface java.io.DataOutput.writeLong:(J)V
1: aload 1
aload 0
getfield java.time.Duration.nanos:I
invokeinterface java.io.DataOutput.writeInt:(I)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/Duration;
0 3 1 out Ljava/io/DataOutput;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
static java.time.Duration readExternal(java.io.DataInput);
descriptor: (Ljava/io/DataInput;)Ljava/time/Duration;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokeinterface java.io.DataInput.readLong:()J
lstore 1
start local 1 1: aload 0
invokeinterface java.io.DataInput.readInt:()I
istore 3
start local 3 2: lload 1
iload 3
i2l
invokestatic java.time.Duration.ofSeconds:(JJ)Ljava/time/Duration;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 in Ljava/io/DataInput;
1 3 1 seconds J
2 3 3 nanos I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
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.time.Duration
invokevirtual java.time.Duration.compareTo:(Ljava/time/Duration;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
static int[] $SWITCH_TABLE$java$time$temporal$ChronoUnit();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.time.Duration.$SWITCH_TABLE$java$time$temporal$ChronoUnit:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.time.temporal.ChronoUnit.values:()[Ljava/time/temporal/ChronoUnit;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.time.temporal.ChronoUnit.CENTURIES:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 13
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 8
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.time.temporal.ChronoUnit.DECADES:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 12
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.time.temporal.ChronoUnit.ERAS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 15
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.time.temporal.ChronoUnit.FOREVER:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 16
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.time.temporal.ChronoUnit.HALF_DAYS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 7
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic java.time.temporal.ChronoUnit.HOURS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 6
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic java.time.temporal.ChronoUnit.MICROS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iconst_2
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic java.time.temporal.ChronoUnit.MILLENNIA:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 14
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic java.time.temporal.ChronoUnit.MILLIS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iconst_3
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic java.time.temporal.ChronoUnit.MINUTES:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iconst_5
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 10
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic java.time.temporal.ChronoUnit.NANOS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iconst_1
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
iconst_4
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic java.time.temporal.ChronoUnit.WEEKS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 9
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
invokevirtual java.time.temporal.ChronoUnit.ordinal:()I
bipush 11
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
dup
putstatic java.time.Duration.$SWITCH_TABLE$java$time$temporal$ChronoUnit:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
47 48 49 Class java.lang.NoSuchFieldError
}
Signature: Ljava/lang/Object;Ljava/time/temporal/TemporalAmount;Ljava/lang/Comparable<Ljava/time/Duration;>;Ljava/io/Serializable;
SourceFile: "Duration.java"
NestMembers:
java.time.Duration$DurationUnits java.time.Duration$Lazy
InnerClasses:
private DurationUnits = java.time.Duration$DurationUnits of java.time.Duration
private Lazy = java.time.Duration$Lazy of java.time.Duration