public FileDataProvider(File dir, Comparator<String> versionComparator) { super(versionComparator); if (!dir.exists()) throw new IllegalArgumentException("dir: " + dir + " does not exist."); _dir = dir; _stack = new Stack<Iterator<File>>(); _looping = false; reset(); }
@Override public DataEvent<File> next() { if (_currentIterator.hasNext()) { File next = _currentIterator.next(); if (next.isFile()) { // ?? hao: how to implement version++ // new DataEvent<File>(next, _currentVersion++); return new DataEvent<File>(next, nextZoieVersion()); } else { _stack.push(_currentIterator); _currentIterator = Arrays.asList(next.listFiles()).iterator(); return next(); } } else { if (_stack.isEmpty()) { if (_looping) { reset(); return next(); } else { return null; } } else { _currentIterator = _stack.pop(); return next(); } } }
@Override public DataEvent<File> next() { if (_currentIterator.hasNext()) { File next = _currentIterator.next(); if (next.isFile()) { // ?? hao: how to implement version++ // new DataEvent<File>(next, _currentVersion++); return new DataEvent<File>(next, nextZoieVersion()); } else { _stack.push(_currentIterator); _currentIterator = Arrays.asList(next.listFiles()).iterator(); return next(); } } else { if (_stack.isEmpty()) { if (_looping) { reset(); return next(); } else { return null; } } else { _currentIterator = _stack.pop(); return next(); } } }
return new DataEvent<File>(next,nextZoieVersion()); return next(); reset(); return next(); return next();
public FileDataProvider(File dir, Comparator<String> versionComparator) { super(versionComparator); if (!dir.exists()) throw new IllegalArgumentException("dir: "+dir+" does not exist."); _dir=dir; _stack=new Stack<Iterator<File>>(); _looping = false; reset(); }
public FileDataProvider(File dir, Comparator<String> versionComparator) { super(versionComparator); if (!dir.exists()) throw new IllegalArgumentException("dir: " + dir + " does not exist."); _dir = dir; _stack = new Stack<Iterator<File>>(); _looping = false; reset(); }