NodeProxy p;
NodeProxy p, sib;
	protected NodeSet getSiblings(		XQueryContext context,		NodeSet contextSet) {		NodeSet result;		if (!test.isWildcardTest()) {		    DocumentSet docs = getDocumentSet(contextSet);//			DocumentSet docs = contextSet.getDocumentSet();			if (currentSet == null || currentDocs == null || !(docs.equals(currentDocs))) {				currentDocs = docs;				currentSet =					(NodeSet) context.getBroker().getElementIndex().findElementsByTagName(						ElementValue.ELEMENT, currentDocs,						test.getName(), null);			}			result = currentSet.selectSiblings(				contextSet,				axis == Constants.PRECEDING_SIBLING_AXIS					? NodeSet.PRECEDING					: NodeSet.FOLLOWING);		} else {			result = new ArraySet(contextSet.getLength());			NodeProxy p;			NodeImpl n;			for (Iterator i = contextSet.iterator(); i.hasNext();) {				p = (NodeProxy) i.next();				n = (NodeImpl) p.getNode();				while ((n = getNextSibling(n)) != null) {					if (test.matches(n))						result.add(							new NodeProxy(								(DocumentImpl) n.getOwnerDocument(),								n.getGID(),								n.getInternalAddress()));				}			}		}		return result;	}