// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) fieldsfirst lnc // Source File Name: SiblingEnumeration.java package com.icl.saxon.tinytree; import com.icl.saxon.om.AxisEnumeration; import com.icl.saxon.om.NodeInfo; import com.icl.saxon.pattern.NodeTest; // Referenced classes of package com.icl.saxon.tinytree: // TinyNodeImpl, TinyDocumentImpl final class SiblingEnumeration implements AxisEnumeration { TinyDocumentImpl document; int nextNodeNr; NodeTest test; TinyNodeImpl startNode; TinyNodeImpl parentNode; boolean getChildren; int last; protected SiblingEnumeration(TinyDocumentImpl tinydocumentimpl, TinyNodeImpl tinynodeimpl, NodeTest nodetest, boolean flag) { /* 23*/ last = -1; /* 27*/ document = tinydocumentimpl; /* 28*/ test = nodetest; /* 29*/ startNode = tinynodeimpl; /* 30*/ getChildren = flag; /* 31*/ if(flag) { /* 32*/ parentNode = tinynodeimpl; /* 35*/ nextNodeNr = tinynodeimpl.nodeNr + 1; } else { /* 38*/ parentNode = (TinyNodeImpl)tinynodeimpl.getParent(); /* 41*/ nextNodeNr = tinydocumentimpl.next[tinynodeimpl.nodeNr]; } /* 45*/ if(nextNodeNr >= 0 && !nodetest.matches(document.nodeType[nextNodeNr], document.nameCode[nextNodeNr])) /* 48*/ advance(); } public boolean hasMoreElements() { /* 54*/ return nextNodeNr >= 0; } public NodeInfo nextElement() { /* 58*/ TinyNodeImpl tinynodeimpl = document.getNode(nextNodeNr); /* 59*/ tinynodeimpl.setParentNode(parentNode); /* 60*/ advance(); /* 61*/ return tinynodeimpl; } private void advance() { /* 66*/ do /* 66*/ nextNodeNr = document.next[nextNodeNr]; /* 67*/ while(nextNodeNr >= 0 && !test.matches(document.nodeType[nextNodeNr], document.nameCode[nextNodeNr])); } public boolean isSorted() { /* 73*/ return true; } public boolean isReverseSorted() { /* 77*/ return false; } public boolean isPeer() { /* 81*/ return true; } public int getLastPosition() { /* 89*/ if(last >= 0) /* 89*/ return last; /* 90*/ SiblingEnumeration siblingenumeration = new SiblingEnumeration(document, startNode, test, getChildren); /* 92*/ for(last = 0; siblingenumeration.hasMoreElements(); last++) /* 94*/ siblingenumeration.nextElement(); /* 97*/ return last; } }