getSiblings(context, documents, (NodeSet) contextSequence);
getSiblings(context, documents, contextSequence.toNodeSet());
	public Sequence eval(		StaticContext context,		DocumentSet documents,		Sequence contextSequence,		Item contextItem)		throws XPathException {		if (contextItem != null)			contextSequence = contextItem.toSequence();		NodeSet temp;		switch (axis) {			case Constants.DESCENDANT_AXIS :			case Constants.DESCENDANT_SELF_AXIS :				temp =					getDescendants(						context,						documents,						(NodeSet) contextSequence);				break;			case Constants.CHILD_AXIS :				temp =					getChildren(context, documents, (NodeSet) contextSequence);				break;			case Constants.ANCESTOR_AXIS :			case Constants.ANCESTOR_SELF_AXIS :				temp =					getAncestors(context, documents, (NodeSet) contextSequence);				break;			case Constants.SELF_AXIS :				temp = (NodeSet) contextSequence;				if (inPredicate) {					if (temp instanceof VirtualNodeSet) {						((VirtualNodeSet) temp).setInPredicate(true);						((VirtualNodeSet) temp).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(context, documents, (NodeSet) contextSequence);				break;			case Constants.ATTRIBUTE_AXIS :				// combines /descendant-or-self::node()/attribute:*			case Constants.DESCENDANT_ATTRIBUTE_AXIS :				temp =					getAttributes(						context,						documents,						(NodeSet) contextSequence);				break;			case Constants.PRECEDING_SIBLING_AXIS :			case Constants.FOLLOWING_SIBLING_AXIS :				temp =					getSiblings(context, documents, (NodeSet) contextSequence);				break;			default :				throw new IllegalArgumentException("Unsupported axis specified");		}		temp =			(predicates.size() == 0)				? temp				: applyPredicate(context, documents, temp);		return temp;	}