// 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: PrecedingSiblingEnumeration.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: // TinyDocumentImpl, TinyNodeImpl final class PrecedingSiblingEnumeration implements AxisEnumeration { TinyDocumentImpl document; TinyNodeImpl startNode; int nextNodeNr; int depth; NodeTest test; TinyNodeImpl parentNode; int last; protected PrecedingSiblingEnumeration(TinyDocumentImpl tinydocumentimpl, TinyNodeImpl tinynodeimpl, NodeTest nodetest) { /* 20*/ last = -1; /* 24*/ document = tinydocumentimpl; /* 25*/ document.ensurePriorIndex(); /* 26*/ test = nodetest; /* 27*/ startNode = tinynodeimpl; /* 28*/ nextNodeNr = tinynodeimpl.nodeNr; /* 29*/ depth = tinydocumentimpl.depth[nextNodeNr]; /* 30*/ parentNode = tinynodeimpl.parent; /* 31*/ advance(); } public boolean hasMoreElements() { /* 35*/ return nextNodeNr >= 0; } public NodeInfo nextElement() { /* 39*/ TinyNodeImpl tinynodeimpl = document.getNode(nextNodeNr); /* 40*/ tinynodeimpl.setParentNode(parentNode); /* 41*/ advance(); /* 42*/ return tinynodeimpl; } private void advance() { /* 47*/ do /* 47*/ nextNodeNr = document.prior[nextNodeNr]; /* 48*/ while(nextNodeNr >= 0 && !test.matches(document.nodeType[nextNodeNr], document.nameCode[nextNodeNr])); } public boolean isSorted() { /* 70*/ return false; } public boolean isReverseSorted() { /* 74*/ return true; } public boolean isPeer() { /* 78*/ return true; } public int getLastPosition() { /* 86*/ if(last >= 0) /* 86*/ return last; /* 87*/ PrecedingSiblingEnumeration precedingsiblingenumeration = new PrecedingSiblingEnumeration(document, startNode, test); /* 89*/ for(last = 0; precedingsiblingenumeration.hasMoreElements(); last++) /* 91*/ precedingsiblingenumeration.nextElement(); /* 94*/ return last; } }