class android.util.RecurrenceRule$RecurringIterator implements java.util.Iterator<android.util.Range<java.time.ZonedDateTime>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.util.RecurrenceRule$RecurringIterator
super_class: java.lang.Object
{
int i;
descriptor: I
flags: (0x0000)
java.time.ZonedDateTime cycleStart;
descriptor: Ljava/time/ZonedDateTime;
flags: (0x0000)
java.time.ZonedDateTime cycleEnd;
descriptor: Ljava/time/ZonedDateTime;
flags: (0x0000)
final android.util.RecurrenceRule this$0;
descriptor: Landroid/util/RecurrenceRule;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(android.util.RecurrenceRule);
descriptor: (Landroid/util/RecurrenceRule;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 0: aload 0
aload 1
putfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
getfield android.util.RecurrenceRule.end:Ljava/time/ZonedDateTime;
ifnull 2
aload 1
getfield android.util.RecurrenceRule.end:Ljava/time/ZonedDateTime;
goto 3
2: StackMap locals: android.util.RecurrenceRule$RecurringIterator android.util.RecurrenceRule
StackMap stack:
getstatic android.util.RecurrenceRule.sClock:Ljava/time/Clock;
invokestatic java.time.ZonedDateTime.now:(Ljava/time/Clock;)Ljava/time/ZonedDateTime;
aload 1
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.getZone:()Ljava/time/ZoneId;
invokevirtual java.time.ZonedDateTime.withZoneSameInstant:(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
3: StackMap locals:
StackMap stack: java.time.ZonedDateTime
astore 2
start local 2 4: getstatic android.util.RecurrenceRule.LOGD:Z
ifeq 5
ldc "RecurrenceRule"
new java.lang.StringBuilder
dup
ldc "Resolving using anchor "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: StackMap locals: java.time.ZonedDateTime
StackMap stack:
aload 0
invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.util.RecurrenceRule$RecurringIterator.i:I
iconst_1
iadd
putfield android.util.RecurrenceRule$RecurringIterator.i:I
8: aload 0
invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
lcmp
ifgt 7
10: goto 13
11: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.util.RecurrenceRule$RecurringIterator.i:I
iconst_1
isub
putfield android.util.RecurrenceRule$RecurringIterator.i:I
12: aload 0
invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
lcmp
ifle 11
14: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/util/RecurrenceRule$RecurringIterator;
4 15 2 anchor Ljava/time/ZonedDateTime;
MethodParameters:
Name Flags
this$0 final
private void updateCycle();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
aload 0
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.period:Ljava/time/Period;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.i:I
invokevirtual java.time.Period.multipliedBy:(I)Ljava/time/Period;
invokevirtual java.time.ZonedDateTime.plus:(Ljava/time/temporal/TemporalAmount;)Ljava/time/ZonedDateTime;
invokevirtual android.util.RecurrenceRule$RecurringIterator.roundBoundaryTime:(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
putfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
1: aload 0
aload 0
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.period:Ljava/time/Period;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.i:I
iconst_1
iadd
invokevirtual java.time.Period.multipliedBy:(I)Ljava/time/Period;
invokevirtual java.time.ZonedDateTime.plus:(Ljava/time/temporal/TemporalAmount;)Ljava/time/ZonedDateTime;
invokevirtual android.util.RecurrenceRule$RecurringIterator.roundBoundaryTime:(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
putfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/util/RecurrenceRule$RecurringIterator;
private java.time.ZonedDateTime roundBoundaryTime(java.time.ZonedDateTime);
descriptor: (Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
invokevirtual android.util.RecurrenceRule.isMonthly:()Z
ifeq 2
aload 1
invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
if_icmpge 2
1: aload 1
invokevirtual java.time.ZonedDateTime.toLocalDate:()Ljava/time/LocalDate;
getstatic java.time.LocalTime.MAX:Ljava/time/LocalTime;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.getZone:()Ljava/time/ZoneId;
invokestatic java.time.ZonedDateTime.of:(Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/util/RecurrenceRule$RecurringIterator;
0 3 1 boundary Ljava/time/ZonedDateTime;
MethodParameters:
Name Flags
boundary
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
lcmp
iflt 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 Landroid/util/RecurrenceRule$RecurringIterator;
public android.util.Range<java.time.ZonedDateTime> next();
descriptor: ()Landroid/util/Range;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic android.util.RecurrenceRule.LOGD:Z
ifeq 1
ldc "RecurrenceRule"
new java.lang.StringBuilder
dup
ldc "Cycle "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.i:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " from "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
1: StackMap locals:
StackMap stack:
new android.util.Range
dup
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
aload 0
getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
invokespecial android.util.Range.<init>:(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
astore 1
start local 1 2: aload 0
dup
getfield android.util.RecurrenceRule$RecurringIterator.i:I
iconst_1
isub
putfield android.util.RecurrenceRule$RecurringIterator.i:I
3: aload 0
invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/util/RecurrenceRule$RecurringIterator;
2 5 1 r Landroid/util/Range<Ljava/time/ZonedDateTime;>;
Signature: ()Landroid/util/Range<Ljava/time/ZonedDateTime;>;
public java.lang.Object next();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual android.util.RecurrenceRule$RecurringIterator.next:()Landroid/util/Range;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Landroid/util/Range<Ljava/time/ZonedDateTime;>;>;
SourceFile: "RecurrenceRule.java"
NestHost: android.util.RecurrenceRule
InnerClasses:
private RecurringIterator = android.util.RecurrenceRule$RecurringIterator of android.util.RecurrenceRule