if (_source instanceof StepIterator) { StepIterator source = (StepIterator)clone._source; source.setRestartable(); } else if (_source instanceof NodeIteratorBase) { NodeIteratorBase source = (NodeIteratorBase)clone._source; source._isRestartable = true; }
	public NodeIterator cloneIterator() {	    try {		NodeValueIterator clone = (NodeValueIterator)super.clone();		clone._isRestartable = false;		clone._source = _source.cloneIterator();		clone._value = _value;		clone._op = _op;		return clone.reset();	    }	    catch (CloneNotSupportedException e) {		BasisLibrary.runTimeError(BasisLibrary.ITERATOR_CLONE_ERR,					  e.toString());		return null;	    }	}