abstract class com.google.common.collect.AbstractIndexedListIterator extends com.google.common.collect.UnmodifiableListIterator
{
private final int size;
private int position;
protected abstract java.lang.Object get(int);
protected void <init>(int)
{
int v;
com.google.common.collect.AbstractIndexedListIterator v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v := @parameter: int;
specialinvoke v.<com.google.common.collect.AbstractIndexedListIterator: void <init>(int,int)>(v, 0);
return;
}
protected void <init>(int, int)
{
int v, v;
com.google.common.collect.AbstractIndexedListIterator v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<com.google.common.collect.UnmodifiableListIterator: void <init>()>();
staticinvoke <com.google.common.base.Preconditions: int checkPositionIndex(int,int)>(v, v);
v.<com.google.common.collect.AbstractIndexedListIterator: int size> = v;
v.<com.google.common.collect.AbstractIndexedListIterator: int position> = v;
return;
}
public final boolean hasNext()
{
com.google.common.collect.AbstractIndexedListIterator v;
int v, v;
boolean v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
v = v.<com.google.common.collect.AbstractIndexedListIterator: int size>;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final java.lang.Object next()
{
com.google.common.collect.AbstractIndexedListIterator v;
int v, v;
java.lang.Object v;
java.util.NoSuchElementException v;
boolean v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = virtualinvoke v.<com.google.common.collect.AbstractIndexedListIterator: boolean hasNext()>();
if v != 0 goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
label:
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
v = v + 1;
v.<com.google.common.collect.AbstractIndexedListIterator: int position> = v;
v = virtualinvoke v.<com.google.common.collect.AbstractIndexedListIterator: java.lang.Object get(int)>(v);
return v;
}
public final int nextIndex()
{
int v;
com.google.common.collect.AbstractIndexedListIterator v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
return v;
}
public final boolean hasPrevious()
{
int v;
boolean v;
com.google.common.collect.AbstractIndexedListIterator v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final java.lang.Object previous()
{
com.google.common.collect.AbstractIndexedListIterator v;
int v, v;
java.lang.Object v;
java.util.NoSuchElementException v;
boolean v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = virtualinvoke v.<com.google.common.collect.AbstractIndexedListIterator: boolean hasPrevious()>();
if v != 0 goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
label:
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
v = v - 1;
v.<com.google.common.collect.AbstractIndexedListIterator: int position> = v;
v = virtualinvoke v.<com.google.common.collect.AbstractIndexedListIterator: java.lang.Object get(int)>(v);
return v;
}
public final int previousIndex()
{
int v, v;
com.google.common.collect.AbstractIndexedListIterator v;
v := @this: com.google.common.collect.AbstractIndexedListIterator;
v = v.<com.google.common.collect.AbstractIndexedListIterator: int position>;
v = v - 1;
return v;
}
}