final class java.time.chrono.ChronoPeriodImpl implements java.time.chrono.ChronoPeriod, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.time.chrono.ChronoPeriodImpl
super_class: java.lang.Object
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 57387258289
private static final java.util.List<java.time.temporal.TemporalUnit> SUPPORTED_UNITS;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/time/temporal/TemporalUnit;>;
private final java.time.chrono.Chronology chrono;
descriptor: Ljava/time/chrono/Chronology;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final int years;
descriptor: I
flags: (0x0010) ACC_FINAL
final int months;
descriptor: I
flags: (0x0010) ACC_FINAL
final int days;
descriptor: I
flags: (0x0010) ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
invokestatic java.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
putstatic java.time.chrono.ChronoPeriodImpl.SUPPORTED_UNITS:Ljava/util/List;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.time.chrono.Chronology, int, int, int);
descriptor: (Ljava/time/chrono/Chronology;III)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ldc "chrono"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 0
aload 1
putfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
3: aload 0
iload 2
putfield java.time.chrono.ChronoPeriodImpl.years:I
4: aload 0
iload 3
putfield java.time.chrono.ChronoPeriodImpl.months:I
5: aload 0
iload 4
putfield java.time.chrono.ChronoPeriodImpl.days:I
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 7 1 chrono Ljava/time/chrono/Chronology;
0 7 2 years I
0 7 3 months I
0 7 4 days I
MethodParameters:
Name Flags
chrono
years
months
days
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.YEARS:Ljava/time/temporal/ChronoUnit;
if_acmpne 2
1: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
lreturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
if_acmpne 4
3: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
lreturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
if_acmpne 6
5: aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
i2l
lreturn
6: 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 7 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 7 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.chrono.ChronoPeriodImpl.SUPPORTED_UNITS:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/chrono/ChronoPeriodImpl;
Signature: ()Ljava/util/List<Ljava/time/temporal/TemporalUnit;>;
public java.time.chrono.Chronology getChronology();
descriptor: ()Ljava/time/chrono/Chronology;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/chrono/ChronoPeriodImpl;
public boolean isZero();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifne 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
ifne 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
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/chrono/ChronoPeriodImpl;
public boolean isNegative();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
iflt 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
iflt 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
iflt 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/time/chrono/ChronoPeriodImpl;
public java.time.chrono.ChronoPeriod plus(java.time.temporal.TemporalAmount);
descriptor: (Ljava/time/temporal/TemporalAmount;)Ljava/time/chrono/ChronoPeriod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.time.chrono.ChronoPeriodImpl.validateAmount:(Ljava/time/temporal/TemporalAmount;)Ljava/time/chrono/ChronoPeriodImpl;
astore 2
start local 2 1: new java.time.chrono.ChronoPeriodImpl
dup
2: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
3: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.years:I
invokestatic java.lang.Math.addExact:(II)I
4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.months:I
invokestatic java.lang.Math.addExact:(II)I
5: aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.days:I
invokestatic java.lang.Math.addExact:(II)I
6: invokespecial java.time.chrono.ChronoPeriodImpl.<init>:(Ljava/time/chrono/Chronology;III)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 7 1 amountToAdd Ljava/time/temporal/TemporalAmount;
1 7 2 amount Ljava/time/chrono/ChronoPeriodImpl;
MethodParameters:
Name Flags
amountToAdd
public java.time.chrono.ChronoPeriod minus(java.time.temporal.TemporalAmount);
descriptor: (Ljava/time/temporal/TemporalAmount;)Ljava/time/chrono/ChronoPeriod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.time.chrono.ChronoPeriodImpl.validateAmount:(Ljava/time/temporal/TemporalAmount;)Ljava/time/chrono/ChronoPeriodImpl;
astore 2
start local 2 1: new java.time.chrono.ChronoPeriodImpl
dup
2: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
3: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.years:I
invokestatic java.lang.Math.subtractExact:(II)I
4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.months:I
invokestatic java.lang.Math.subtractExact:(II)I
5: aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.days:I
invokestatic java.lang.Math.subtractExact:(II)I
6: invokespecial java.time.chrono.ChronoPeriodImpl.<init>:(Ljava/time/chrono/Chronology;III)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 7 1 amountToSubtract Ljava/time/temporal/TemporalAmount;
1 7 2 amount Ljava/time/chrono/ChronoPeriodImpl;
MethodParameters:
Name Flags
amountToSubtract
private java.time.chrono.ChronoPeriodImpl validateAmount(java.time.temporal.TemporalAmount);
descriptor: (Ljava/time/temporal/TemporalAmount;)Ljava/time/chrono/ChronoPeriodImpl;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "amount"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 1
instanceof java.time.chrono.ChronoPeriodImpl
ifne 3
2: new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Unable to obtain ChronoPeriod from TemporalAmount: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 1
checkcast java.time.chrono.ChronoPeriodImpl
astore 2
start local 2 4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
aload 2
invokevirtual java.time.chrono.ChronoPeriodImpl.getChronology:()Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.equals:(Ljava/lang/Object;)Z
ifne 6
5: new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
ldc "Chronology mismatch, expected: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", actual: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.time.chrono.ChronoPeriodImpl.getChronology:()Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.time.chrono.ChronoPeriodImpl
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 7 1 amount Ljava/time/temporal/TemporalAmount;
4 7 2 period Ljava/time/chrono/ChronoPeriodImpl;
MethodParameters:
Name Flags
amount
public java.time.chrono.ChronoPeriod multipliedBy(int);
descriptor: (I)Ljava/time/chrono/ChronoPeriod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.isZero:()Z
ifne 1
iload 1
iconst_1
if_icmpne 2
1: StackMap locals:
StackMap stack:
aload 0
areturn
2: StackMap locals:
StackMap stack:
new java.time.chrono.ChronoPeriodImpl
dup
3: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
iload 1
invokestatic java.lang.Math.multiplyExact:(II)I
5: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
iload 1
invokestatic java.lang.Math.multiplyExact:(II)I
6: aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
iload 1
invokestatic java.lang.Math.multiplyExact:(II)I
7: invokespecial java.time.chrono.ChronoPeriodImpl.<init>:(Ljava/time/chrono/Chronology;III)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 8 1 scalar I
MethodParameters:
Name Flags
scalar
public java.time.chrono.ChronoPeriod normalized();
descriptor: ()Ljava/time/chrono/ChronoPeriod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.monthRange:()J
lstore 1
start local 1 1: lload 1
lconst_0
lcmp
ifle 8
2: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
lload 1
lmul
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
ladd
lstore 3
start local 3 3: lload 3
lload 1
ldiv
lstore 5
start local 5 4: lload 3
lload 1
lrem
l2i
istore 7
start local 7 5: lload 5
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
lcmp
ifne 7
iload 7
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
if_icmpne 7
6: aload 0
areturn
7: StackMap locals: java.time.chrono.ChronoPeriodImpl long long long int
StackMap stack:
new java.time.chrono.ChronoPeriodImpl
dup
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
lload 5
invokestatic java.lang.Math.toIntExact:(J)I
iload 7
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
invokespecial java.time.chrono.ChronoPeriodImpl.<init>:(Ljava/time/chrono/Chronology;III)V
areturn
end local 7 end local 5 end local 3 8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/time/chrono/ChronoPeriodImpl;
1 9 1 monthRange J
3 8 3 totalMonths J
4 8 5 splitYears J
5 8 7 splitMonths I
private long monthRange();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
getstatic java.time.temporal.ChronoField.MONTH_OF_YEAR:Ljava/time/temporal/ChronoField;
invokeinterface java.time.chrono.Chronology.range:(Ljava/time/temporal/ChronoField;)Ljava/time/temporal/ValueRange;
astore 1
start local 1 1: aload 1
invokevirtual java.time.temporal.ValueRange.isFixed:()Z
ifeq 3
aload 1
invokevirtual java.time.temporal.ValueRange.isIntValue:()Z
ifeq 3
2: aload 1
invokevirtual java.time.temporal.ValueRange.getMaximum:()J
aload 1
invokevirtual java.time.temporal.ValueRange.getMinimum:()J
lsub
lconst_1
ladd
lreturn
3: StackMap locals: java.time.temporal.ValueRange
StackMap stack:
ldc -1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/time/chrono/ChronoPeriodImpl;
1 4 1 startRange Ljava/time/temporal/ValueRange;
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=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.time.chrono.ChronoPeriodImpl.validateChrono:(Ljava/time/temporal/TemporalAccessor;)V
1: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
ifne 5
2: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifeq 12
3: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
4: goto 12
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.monthRange:()J
lstore 2
start local 2 6: lload 2
lconst_0
lcmp
ifle 9
7: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
lload 2
lmul
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
ladd
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
8: goto 12
9: StackMap locals: long
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifeq 11
10: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
11: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
end local 2 12: StackMap locals:
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
ifeq 14
13: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
i2l
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.plus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 15 1 temporal Ljava/time/temporal/Temporal;
6 12 2 monthRange J
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=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.time.chrono.ChronoPeriodImpl.validateChrono:(Ljava/time/temporal/TemporalAccessor;)V
1: aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
ifne 5
2: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifeq 12
3: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
4: goto 12
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.monthRange:()J
lstore 2
start local 2 6: lload 2
lconst_0
lcmp
ifle 9
7: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
lload 2
lmul
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
ladd
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
8: goto 12
9: StackMap locals: long
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifeq 11
10: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
i2l
getstatic java.time.temporal.ChronoUnit.YEARS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
11: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
i2l
getstatic java.time.temporal.ChronoUnit.MONTHS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
end local 2 12: StackMap locals:
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
ifeq 14
13: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
i2l
getstatic java.time.temporal.ChronoUnit.DAYS:Ljava/time/temporal/ChronoUnit;
invokeinterface java.time.temporal.Temporal.minus:(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
astore 1
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 15 1 temporal Ljava/time/temporal/Temporal;
6 12 2 monthRange J
MethodParameters:
Name Flags
temporal
private void validateChrono(java.time.temporal.TemporalAccessor);
descriptor: (Ljava/time/temporal/TemporalAccessor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "temporal"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.time.temporal.TemporalQueries.chronology:()Ljava/time/temporal/TemporalQuery;
invokeinterface java.time.temporal.TemporalAccessor.query:(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
checkcast java.time.chrono.Chronology
astore 2
start local 2 2: aload 2
ifnull 4
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
aload 2
invokeinterface java.time.chrono.Chronology.equals:(Ljava/lang/Object;)Z
ifne 4
3: new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Chronology mismatch, expected: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", actual: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface java.time.chrono.Chronology.getId:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.time.chrono.Chronology
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 5 1 temporal Ljava/time/temporal/TemporalAccessor;
2 5 2 temporalChrono Ljava/time/chrono/Chronology;
MethodParameters:
Name Flags
temporal
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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.chrono.ChronoPeriodImpl
ifeq 8
3: aload 1
checkcast java.time.chrono.ChronoPeriodImpl
astore 2
start local 2 4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.years:I
if_icmpne 7
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.months:I
if_icmpne 7
5: aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
aload 2
getfield java.time.chrono.ChronoPeriodImpl.days:I
if_icmpne 7
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
aload 2
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.equals:(Ljava/lang/Object;)Z
ifeq 7
6: iconst_1
ireturn
StackMap locals: java.time.chrono.ChronoPeriodImpl
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/chrono/ChronoPeriodImpl;
0 9 1 obj Ljava/lang/Object;
4 8 2 other Ljava/time/chrono/ChronoPeriodImpl;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
bipush 8
invokestatic java.lang.Integer.rotateLeft:(II)I
iadd
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
bipush 16
invokestatic java.lang.Integer.rotateLeft:(II)I
iadd
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.hashCode:()I
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/chrono/ChronoPeriodImpl;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.isZero:()Z
ifeq 2
1: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.getChronology:()Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " P0D"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 3: aload 1
aload 0
invokevirtual java.time.chrono.ChronoPeriodImpl.getChronology:()Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
bipush 80
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
4: aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
ifeq 6
5: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 89
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
ifeq 8
7: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 77
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
ifeq 10
9: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 68
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/time/chrono/ChronoPeriodImpl;
3 11 1 buf Ljava/lang/StringBuilder;
protected java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.time.chrono.Ser
dup
bipush 9
aload 0
invokespecial java.time.chrono.Ser.<init>:(BLjava/lang/Object;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/chrono/ChronoPeriodImpl;
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/chrono/ChronoPeriodImpl;
0 1 1 s Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.ObjectStreamException
MethodParameters:
Name Flags
s
void writeExternal(java.io.DataOutput);
descriptor: (Ljava/io/DataOutput;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.chrono:Ljava/time/chrono/Chronology;
invokeinterface java.time.chrono.Chronology.getId:()Ljava/lang/String;
invokeinterface java.io.DataOutput.writeUTF:(Ljava/lang/String;)V
1: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.years:I
invokeinterface java.io.DataOutput.writeInt:(I)V
2: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.months:I
invokeinterface java.io.DataOutput.writeInt:(I)V
3: aload 1
aload 0
getfield java.time.chrono.ChronoPeriodImpl.days:I
invokeinterface java.io.DataOutput.writeInt:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/chrono/ChronoPeriodImpl;
0 5 1 out Ljava/io/DataOutput;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
static java.time.chrono.ChronoPeriodImpl readExternal(java.io.DataInput);
descriptor: (Ljava/io/DataInput;)Ljava/time/chrono/ChronoPeriodImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokeinterface java.io.DataInput.readUTF:()Ljava/lang/String;
invokestatic java.time.chrono.Chronology.of:(Ljava/lang/String;)Ljava/time/chrono/Chronology;
astore 1
start local 1 1: aload 0
invokeinterface java.io.DataInput.readInt:()I
istore 2
start local 2 2: aload 0
invokeinterface java.io.DataInput.readInt:()I
istore 3
start local 3 3: aload 0
invokeinterface java.io.DataInput.readInt:()I
istore 4
start local 4 4: new java.time.chrono.ChronoPeriodImpl
dup
aload 1
iload 2
iload 3
iload 4
invokespecial java.time.chrono.ChronoPeriodImpl.<init>:(Ljava/time/chrono/Chronology;III)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 in Ljava/io/DataInput;
1 5 1 chrono Ljava/time/chrono/Chronology;
2 5 2 years I
3 5 3 months I
4 5 4 days I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
}
SourceFile: "ChronoPeriodImpl.java"