result.add(p); p.copyContext(contextNode);
p.deepCopyContext(contextNode);
	private final void addChildren(NodeProxy contextNode, NodeSet result, StoredNode node, Iterator iter,	        int recursions) {		if (node.hasChildNodes()) {			StoredNode child;			NodeProxy p;			for (int i = 0; i < node.getChildCount(); i++) {				child = (StoredNode) iter.next();				if(child == null)					LOG.debug("CHILD == NULL; doc = " + 							((DocumentImpl)node.getOwnerDocument()).getName());				if(node.getOwnerDocument() == null)					LOG.debug("DOC == NULL");				child.setOwnerDocument(node.getOwnerDocument());				child.setGID(node.firstChildID() + i);				p = new NodeProxy((DocumentImpl)child.getOwnerDocument(), child.getGID(), child.getNodeType());				p.setInternalAddress(child.getInternalAddress());				p.setMatches(contextNode.getMatches());				if (test.matches(child)) {					if (((axis == Constants.CHILD_AXIS						|| axis == Constants.ATTRIBUTE_AXIS)						&& recursions == 0) ||						(axis == Constants.DESCENDANT_AXIS						|| axis == Constants.DESCENDANT_SELF_AXIS						|| axis == Constants.DESCENDANT_ATTRIBUTE_AXIS)) {						result.add(p);						p.copyContext(contextNode);						if (useSelfAsContext && inPredicate) {							p.addContextNode(contextId, p);						} else if (inPredicate)							p.addContextNode(contextId, contextNode);					}				}				addChildren(contextNode, result, child, iter, recursions + 1);			}		}//		} else if (test.matches(node)) {//			if((axis == Constants.CHILD_AXIS || axis == Constants.ATTRIBUTE_AXIS)//				&& recursions > 0)//				return;//			NodeProxy p = new NodeProxy(node.ownerDocument, node.gid, node.getNodeType());//			p.setInternalAddress(node.internalAddress);//			p.setMatches(contextNode.getMatches());//			result.add(p);//			p.copyContext(contextNode);//			if (useSelfAsContext && inPredicate) {//				p.addContextNode(p);//			} else if (inPredicate)//				p.addContextNode(contextNode);//		}	}