class com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator extends java.lang.Object implements java.util.Iterator
{
private final com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider nextProvider;
private java.util.Iterator current;
private java.util.Iterator next;
private boolean lastReturnedFromCurrent;
private boolean lastReturnedFromNext;
public void <init>(java.util.Iterator, com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider)
{
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider v;
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator v;
java.util.Iterator v;
v := @this: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator;
v := @parameter: java.util.Iterator;
v := @parameter: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromCurrent> = 0;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromNext> = 0;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider nextProvider> = v;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator current> = v;
return;
}
public boolean hasNext()
{
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider v;
java.util.Iterator v, v, v, v;
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator v;
boolean v, v;
v := @this: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator current>;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
return 1;
label:
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next>;
if v != null goto label;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider nextProvider>;
v = interfaceinvoke v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider: java.util.Iterator provide()>();
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next> = v;
label:
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next>;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
return v;
}
public java.lang.Object next()
{
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider v;
java.util.Iterator v, v, v, v, v;
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator v;
java.lang.Object v, v;
boolean v;
v := @this: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator current>;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromCurrent> = 1;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromNext> = 0;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator current>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
return v;
label:
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next>;
if v != null goto label;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider nextProvider>;
v = interfaceinvoke v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator$Provider: java.util.Iterator provide()>();
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next> = v;
label:
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromCurrent> = 0;
v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromNext> = 1;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
return v;
}
public void remove()
{
com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator v;
java.util.Iterator v, v;
java.lang.IllegalArgumentException v;
boolean v, v;
v := @this: com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromCurrent>;
if v == 0 goto label;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator current>;
interfaceinvoke v.<java.util.Iterator: void remove()>();
return;
label:
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: boolean lastReturnedFromNext>;
if v == 0 goto label;
v = v.<com.github.javaparser.printer.lexicalpreservation.TextElementIteratorsFactory$CascadingIterator: java.util.Iterator next>;
interfaceinvoke v.<java.util.Iterator: void remove()>();
return;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>()>();
throw v;
}
}