public abstract class org.apache.axiom.om.impl.traverse.OMAbstractIterator extends java.lang.Object implements java.util.Iterator
{
private org.apache.axiom.om.OMNode currentNode;
private org.apache.axiom.om.OMContainer currentParent;
private org.apache.axiom.om.OMNode nextNode;
private boolean noMoreNodes;
private boolean nextCalled;
public void <init>(org.apache.axiom.om.OMNode)
{
org.apache.axiom.om.OMNode v;
org.apache.axiom.om.impl.traverse.OMAbstractIterator v;
v := @this: org.apache.axiom.om.impl.traverse.OMAbstractIterator;
v := @parameter: org.apache.axiom.om.OMNode;
specialinvoke v.<java.lang.Object: void <init>()>();
if v != null goto label;
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean noMoreNodes> = 1;
goto label;
label:
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode> = v;
label:
return;
}
protected abstract org.apache.axiom.om.OMNode getNextNode(org.apache.axiom.om.OMNode);
public boolean hasNext()
{
org.apache.axiom.om.OMNode v, v, v, v, v;
org.apache.axiom.om.OMContainer v, v;
org.apache.axiom.om.impl.traverse.OMAbstractIterator v;
java.util.ConcurrentModificationException v;
boolean v, v, v, v;
v := @this: org.apache.axiom.om.impl.traverse.OMAbstractIterator;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean noMoreNodes>;
if v == 0 goto label;
return 0;
label:
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode>;
if v == null goto label;
return 1;
label:
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode>;
v = interfaceinvoke v.<org.apache.axiom.om.OMNode: org.apache.axiom.om.OMContainer getParent()>();
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMContainer currentParent>;
if v == v goto label;
v = new java.util.ConcurrentModificationException;
specialinvoke v.<java.util.ConcurrentModificationException: void <init>(java.lang.String)>("The current node has been removed using a method other than Iterator#remove()");
throw v;
label:
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode>;
v = virtualinvoke v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode getNextNode(org.apache.axiom.om.OMNode)>(v);
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode> = v;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean noMoreNodes> = v;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean noMoreNodes>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object next()
{
org.apache.axiom.om.OMNode v, v, v;
org.apache.axiom.om.OMContainer v;
org.apache.axiom.om.impl.traverse.OMAbstractIterator v;
java.util.NoSuchElementException v;
boolean v;
v := @this: org.apache.axiom.om.impl.traverse.OMAbstractIterator;
v = virtualinvoke v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean hasNext()>();
if v == 0 goto label;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode>;
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode> = v;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode>;
v = interfaceinvoke v.<org.apache.axiom.om.OMNode: org.apache.axiom.om.OMContainer getParent()>();
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMContainer currentParent> = v;
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode nextNode> = null;
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean nextCalled> = 1;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode>;
return v;
label:
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
}
public void remove()
{
java.lang.IllegalStateException v;
org.apache.axiom.om.OMNode v;
org.apache.axiom.om.impl.traverse.OMAbstractIterator v;
boolean v;
v := @this: org.apache.axiom.om.impl.traverse.OMAbstractIterator;
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean nextCalled>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("next() has not yet been called");
throw v;
label:
virtualinvoke v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean hasNext()>();
v = v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: org.apache.axiom.om.OMNode currentNode>;
interfaceinvoke v.<org.apache.axiom.om.OMNode: org.apache.axiom.om.OMNode detach()>();
v.<org.apache.axiom.om.impl.traverse.OMAbstractIterator: boolean nextCalled> = 0;
return;
}
}