package xapi.fu; import java.util.Iterator; /** * Created by James X. Nelson (james @wetheinter.net) on 7/31/16. */ public class MappedIterator<From, To> implements Iterator<To> { private final Iterator<From> from; private final In1Out1<From, To> mapper; public MappedIterator(Iterator<From> from, In1Out1<From, To> mapper) { this.from = from; this.mapper = mapper; } public static <From, To> MappedIterator<From, To> mapIterator(Iterator<From> from, In1Out1<From, To> mapper) { return new MappedIterator<>(from, mapper); } @Override public boolean hasNext() { return from.hasNext(); } @Override public To next() { return mapper.io(from.next()); } @Override public void remove() { from.remove(); } }