package xapi.fu;
import java.util.Iterator;
/**
* @author James X. Nelson (james@wetheinter.net)
* Created on 4/19/16.
*/
public class MappableIterator <F, T> implements Iterator<T> {
private final Iterator<F> from;
private final In1Out1<F, T> mapper;
public MappableIterator(Iterator<F> from, In1Out1<F, T> mapper) {
this.from = from;
this.mapper = mapper;
}
@Override
public boolean hasNext() {
return from.hasNext();
}
@Override
public T next() {
final F next = from.next();
return mapper.io(next);
}
@Override
public void remove() {
from.remove();
}
}