class com.google.common.collect.Iterators$PeekingImpl extends java.lang.Object implements com.google.common.collect.PeekingIterator
{
private final java.util.Iterator iterator;
private boolean hasPeeked;
private java.lang.Object peekedElement;
public void <init>(java.util.Iterator)
{
java.lang.Object v;
java.util.Iterator v;
com.google.common.collect.Iterators$PeekingImpl v;
v := @this: com.google.common.collect.Iterators$PeekingImpl;
v := @parameter: java.util.Iterator;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v.<com.google.common.collect.Iterators$PeekingImpl: java.util.Iterator iterator> = v;
return;
}
public boolean hasNext()
{
java.util.Iterator v;
com.google.common.collect.Iterators$PeekingImpl v;
boolean v, v, v;
v := @this: com.google.common.collect.Iterators$PeekingImpl;
v = v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked>;
if v != 0 goto label;
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.util.Iterator iterator>;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object next()
{
java.util.Iterator v;
com.google.common.collect.Iterators$PeekingImpl v;
java.lang.Object v, v, v;
boolean v;
v := @this: com.google.common.collect.Iterators$PeekingImpl;
v = v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked>;
if v != 0 goto label;
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.util.Iterator iterator>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
return v;
label:
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.lang.Object peekedElement>;
v = staticinvoke <com.google.common.collect.NullnessCasts: java.lang.Object uncheckedCastNullableTToT(java.lang.Object)>(v);
v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked> = 0;
v.<com.google.common.collect.Iterators$PeekingImpl: java.lang.Object peekedElement> = null;
return v;
}
public void remove()
{
java.util.Iterator v;
com.google.common.collect.Iterators$PeekingImpl v;
boolean v, v;
v := @this: com.google.common.collect.Iterators$PeekingImpl;
v = v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Can\'t remove after you\'ve peeked at next");
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.util.Iterator iterator>;
interfaceinvoke v.<java.util.Iterator: void remove()>();
return;
}
public java.lang.Object peek()
{
java.util.Iterator v;
com.google.common.collect.Iterators$PeekingImpl v;
java.lang.Object v, v, v;
boolean v;
v := @this: com.google.common.collect.Iterators$PeekingImpl;
v = v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked>;
if v != 0 goto label;
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.util.Iterator iterator>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<com.google.common.collect.Iterators$PeekingImpl: java.lang.Object peekedElement> = v;
v.<com.google.common.collect.Iterators$PeekingImpl: boolean hasPeeked> = 1;
label:
v = v.<com.google.common.collect.Iterators$PeekingImpl: java.lang.Object peekedElement>;
v = staticinvoke <com.google.common.collect.NullnessCasts: java.lang.Object uncheckedCastNullableTToT(java.lang.Object)>(v);
return v;
}
}