class org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst extends java.lang.Object implements java.util.Iterator
{
private java.util.Stack stack;
private org.apache.isis.applib.graph.tree.TreeNode next;
private java.util.Stack fifo;
void <init>(org.apache.isis.applib.graph.tree.TreeNode)
{
org.apache.isis.applib.graph.tree.TreeNode v;
org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst v;
java.util.Stack v, v;
v := @this: org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst;
v := @parameter: org.apache.isis.applib.graph.tree.TreeNode;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.Stack;
specialinvoke v.<java.util.Stack: void <init>()>();
v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack stack> = v;
v = new java.util.Stack;
specialinvoke v.<java.util.Stack: void <init>()>();
v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack fifo> = v;
v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next> = v;
return;
}
public boolean hasNext()
{
org.apache.isis.applib.graph.tree.TreeNode v;
org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst v;
boolean v;
v := @this: org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.isis.applib.graph.tree.TreeNode next()
{
org.apache.isis.applib.graph.tree.TreeNode v, v, v, v;
java.util.NoSuchElementException v;
org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst v;
v := @this: org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next>;
if v != null goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>(java.lang.String)>("Iterator has run out of elements.");
throw v;
label:
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next>;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next>;
v = specialinvoke v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode fetchNext(org.apache.isis.applib.graph.tree.TreeNode)>(v);
v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: org.apache.isis.applib.graph.tree.TreeNode next> = v;
return v;
}
private org.apache.isis.applib.graph.tree.TreeNode fetchNext(org.apache.isis.applib.graph.tree.TreeNode)
{
org.apache.isis.applib.graph.tree.TreeNode v;
java.lang.Object v;
org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst v;
java.util.Stack v, v;
boolean v, v;
v := @this: org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst;
v := @parameter: org.apache.isis.applib.graph.tree.TreeNode;
v = virtualinvoke v.<org.apache.isis.applib.graph.tree.TreeNode: boolean isLeaf()>();
if v != 0 goto label;
specialinvoke v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: void pushChildrenToStackInReverseOrder(org.apache.isis.applib.graph.tree.TreeNode)>(v);
label:
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack stack>;
v = virtualinvoke v.<java.util.Stack: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack stack>;
v = virtualinvoke v.<java.util.Stack: java.lang.Object pop()>();
label:
return v;
}
private void pushChildrenToStackInReverseOrder(org.apache.isis.applib.graph.tree.TreeNode)
{
org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst v;
java.util.Stack v, v, v, v;
java.util.function.Consumer v;
org.apache.isis.applib.graph.tree.TreeNode v;
java.util.stream.Stream v;
java.lang.Object v;
boolean v;
v := @this: org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst;
v := @parameter: org.apache.isis.applib.graph.tree.TreeNode;
v = virtualinvoke v.<org.apache.isis.applib.graph.tree.TreeNode: java.util.stream.Stream streamChildren()>();
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack fifo>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst$push__49: java.util.function.Consumer bootstrap$(java.util.Stack)>(v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
label:
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack fifo>;
v = virtualinvoke v.<java.util.Stack: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack stack>;
v = v.<org.apache.isis.applib.graph.tree.TreeNode_iteratorDepthFirst: java.util.Stack fifo>;
v = virtualinvoke v.<java.util.Stack: java.lang.Object pop()>();
virtualinvoke v.<java.util.Stack: java.lang.Object push(java.lang.Object)>(v);
goto label;
label:
return;
}
}