}
	public NodeSet getContextNodes(int contextId) {		NodeProxy current, context;		ContextItem contextNode;		ExtArrayNodeSet result = new ExtArrayNodeSet();		DocumentImpl lastDoc = null;		for (Iterator i = iterator(); i.hasNext();) {			current = (NodeProxy) i.next();			contextNode = current.getContext();			while (contextNode != null) {				if (contextNode.getContextId() == contextId) {					context = contextNode.getNode();					context.addMatches(current);					if (!result.contains(context)) {						if (Expression.NO_CONTEXT_ID != contextId)							context.addContextNode(contextId, context);						if(lastDoc != null && lastDoc.getDocId() != context.getDocument().getDocId()) {							lastDoc = context.getDocument();							result.add(context, getSizeHint(lastDoc));						} else							result.add(context);					}				}				contextNode = contextNode.getNextDirect();			}		}		return result;	}