abstract class com.google.common.base.AbstractIterator extends java.lang.Object implements java.util.Iterator
{
private com.google.common.base.AbstractIterator$State state;
private java.lang.Object next;
protected void <init>()
{
com.google.common.base.AbstractIterator v;
com.google.common.base.AbstractIterator$State v;
v := @this: com.google.common.base.AbstractIterator;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State NOT_READY>;
v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state> = v;
return;
}
protected abstract java.lang.Object computeNext();
protected final java.lang.Object endOfData()
{
com.google.common.base.AbstractIterator v;
com.google.common.base.AbstractIterator$State v;
v := @this: com.google.common.base.AbstractIterator;
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State DONE>;
v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state> = v;
return null;
}
public final boolean hasNext()
{
int[] v;
com.google.common.base.AbstractIterator v;
com.google.common.base.AbstractIterator$State v, v, v;
int v, v;
boolean v, v;
v := @this: com.google.common.base.AbstractIterator;
v = v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state>;
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State FAILED>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean)>(v);
v = <com.google.common.base.AbstractIterator$1: int[] $SwitchMap$com$google$common$base$AbstractIterator$State>;
v = v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state>;
v = virtualinvoke v.<com.google.common.base.AbstractIterator$State: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return 0;
label:
return 1;
label:
v = specialinvoke v.<com.google.common.base.AbstractIterator: boolean tryToComputeNext()>();
return v;
}
private boolean tryToComputeNext()
{
com.google.common.base.AbstractIterator v;
com.google.common.base.AbstractIterator$State v, v, v, v;
java.lang.Object v;
v := @this: com.google.common.base.AbstractIterator;
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State FAILED>;
v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state> = v;
v = virtualinvoke v.<com.google.common.base.AbstractIterator: java.lang.Object computeNext()>();
v.<com.google.common.base.AbstractIterator: java.lang.Object next> = v;
v = v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state>;
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State DONE>;
if v == v goto label;
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State READY>;
v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state> = v;
return 1;
label:
return 0;
}
public final java.lang.Object next()
{
com.google.common.base.AbstractIterator v;
com.google.common.base.AbstractIterator$State v;
java.lang.Object v, v;
java.util.NoSuchElementException v;
boolean v;
v := @this: com.google.common.base.AbstractIterator;
v = virtualinvoke v.<com.google.common.base.AbstractIterator: boolean hasNext()>();
if v != 0 goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
label:
v = <com.google.common.base.AbstractIterator$State: com.google.common.base.AbstractIterator$State NOT_READY>;
v.<com.google.common.base.AbstractIterator: com.google.common.base.AbstractIterator$State state> = v;
v = v.<com.google.common.base.AbstractIterator: java.lang.Object next>;
v = staticinvoke <com.google.common.base.NullnessCasts: java.lang.Object uncheckedCastNullableTToT(java.lang.Object)>(v);
v.<com.google.common.base.AbstractIterator: java.lang.Object next> = null;
return v;
}
public final void remove()
{
java.lang.UnsupportedOperationException v;
com.google.common.base.AbstractIterator v;
v := @this: com.google.common.base.AbstractIterator;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
}