// 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: PrecedingEnumeration.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 PrecedingEnumeration implements AxisEnumeration { TinyDocumentImpl document; TinyNodeImpl startNode; NodeTest test; int nextNodeNr; int nextAncestorDepth; boolean includeAncestors; int last; public PrecedingEnumeration(TinyDocumentImpl tinydocumentimpl, TinyNodeImpl tinynodeimpl, NodeTest nodetest, boolean flag) { /* 23*/ last = -1; /* 28*/ includeAncestors = flag; /* 29*/ test = nodetest; /* 30*/ document = tinydocumentimpl; /* 31*/ startNode = tinynodeimpl; /* 32*/ nextNodeNr = tinynodeimpl.nodeNr; /* 33*/ nextAncestorDepth = tinydocumentimpl.depth[nextNodeNr] - 1; /* 34*/ advance(); } public boolean hasMoreElements() { /* 38*/ return nextNodeNr >= 0; } public NodeInfo nextElement() { /* 42*/ TinyNodeImpl tinynodeimpl = document.getNode(nextNodeNr); /* 43*/ advance(); /* 44*/ return tinynodeimpl; } private void advance() { /* 49*/ do { /* 49*/ nextNodeNr--; /* 50*/ if(!includeAncestors) /* 53*/ for(; nextNodeNr >= 0 && document.depth[nextNodeNr] == nextAncestorDepth; nextNodeNr--) /* 53*/ nextAncestorDepth--; } while(nextNodeNr >= 0 && !test.matches(document.nodeType[nextNodeNr], document.nameCode[nextNodeNr])); } public boolean isSorted() { /* 63*/ return false; } public boolean isReverseSorted() { /* 67*/ return true; } public boolean isPeer() { /* 71*/ return false; } public int getLastPosition() { /* 79*/ if(last >= 0) /* 79*/ return last; /* 80*/ PrecedingEnumeration precedingenumeration = new PrecedingEnumeration(document, startNode, test, includeAncestors); /* 82*/ for(last = 0; precedingenumeration.hasMoreElements(); last++) /* 84*/ precedingenumeration.nextElement(); /* 87*/ return last; } }