}
} else LOG.debug("Using cache for: " + test.getName());
	protected NodeSet getChildren(		XQueryContext context,		NodeSet contextSet) {		if (test.isWildcardTest()) {			// test is one out of *, text(), node()			VirtualNodeSet vset = new VirtualNodeSet(axis, test, contextSet);			vset.setInPredicate(inPredicate);			return vset;		} else if(preloadNodeSets()) {			DocumentSet docs = getDocumentSet(contextSet);			if (currentSet == null || currentDocs == null || !(docs.equals(currentDocs))) {                currentDocs = docs;                currentSet =                    (NodeSet) context.getBroker().getElementIndex().findElementsByTagName(                        ElementValue.ELEMENT,                        currentDocs,                        test.getName(), null);            }            return currentSet.selectParentChild(contextSet, NodeSet.DESCENDANT, inPredicate);		} else {		    DocumentSet docs = getDocumentSet(contextSet);		    NodeSelector selector = new ChildSelector(contextSet, inPredicate);		    return context.getBroker().getElementIndex().findElementsByTagName(		    		ElementValue.ELEMENT, docs, test.getName(), selector		    );		}	}