if ((_data == null) || (node != _start)) { _start = node;
if ((_data == null) || (node != _startNode)) {  _startNode = node; _last = 0;
    public NodeIterator setStartNode(int node) {	if ((_data == null) || (node != _start)) {	    _start = node;	    _source.setStartNode(node);	    _data = new int[INIT_DATA_SIZE];	    _last = 0;	    // gather all nodes from the source iterator, eliminate dups	    while ((node = _source.next()) != END) {		if (_last == _data.length) {		    int[] newArray = new int[_data.length * 2];		    System.arraycopy(_data, 0, newArray, 0, _last);		    _data = newArray;		}		if (!isDup(node)) {		    _data[_last++] = node;		}	    }	}	_current = 0;  // set to beginning 	return this;    }