temp = getSiblings(documents, context);
temp = getSiblings(context, documents, contextSet);
	public Value eval(DocumentSet documents, NodeSet context, NodeProxy node) {		if(node != null) {			context = new SingleNodeSet(node);		}		NodeSet temp;		switch (axis) {			case Constants.DESCENDANT_AXIS :			case Constants.DESCENDANT_SELF_AXIS :				temp = getDescendants(documents, context);				break;			case Constants.CHILD_AXIS :				temp = getChildren(documents, context);				break;			case Constants.ANCESTOR_AXIS :			case Constants.ANCESTOR_SELF_AXIS :				temp = getAncestors(documents, context);				break;			case Constants.SELF_AXIS :				temp = context;				if(inPredicate) {					if(context instanceof VirtualNodeSet) {						((VirtualNodeSet)context).setInPredicate(true);						((VirtualNodeSet)context).setSelfIsContext();					} else {						NodeProxy p;						for(Iterator i = temp.iterator(); i.hasNext(); ) {							p = (NodeProxy)i.next();							p.addContextNode(p);						}					}				}				break;			case Constants.PARENT_AXIS :				temp = getParents(documents, context);				break;			case Constants.ATTRIBUTE_AXIS :				temp = getAttributes(documents, context);				break;			case Constants.PRECEDING_SIBLING_AXIS :			case Constants.FOLLOWING_SIBLING_AXIS :				temp = getSiblings(documents, context);				break;			default :				throw new IllegalArgumentException("Unsupported axis specified");		}		temp = (predicates.size() == 0) ? temp : applyPredicate(documents, temp);		return new ValueNodeSet(temp);	}