Iterator<Path> () { Iterator<Path> iterator = myDelegate.iterator(); return new Iterator<Path>() { @Override public boolean hasNext() { return iterator.hasNext(); } @Override public Path next() { return wrap(iterator.next()); } }; }