package org.seqcode.gsebricks.verbs; import java.util.*; import org.seqcode.gseutils.Pair; public class MapperPairIterator<A,B> implements Iterator<Pair<A,B>> { private Mapper<A,B> mapper; private Iterator<A> input; public MapperPairIterator(Mapper<A,B> mapper, Iterator<A> input) { this.mapper = mapper; this.input = input; } public boolean hasNext() { return input.hasNext(); } public Pair<A,B> next() { A anext = input.next(); B bnext = mapper.execute(anext); return new Pair<A,B>(anext, bnext); } public void remove() { throw new UnsupportedOperationException("Can't remove from a MapperIterator"); } }