package in.partake.model.dao;
import java.util.NoSuchElementException;
public class MapperDataIterator<S, T> extends DataIterator<T> {
private DataMapper<S, T> mapper;
private DataIterator<S> iterator;
public MapperDataIterator(DataMapper<S, T> mapper, DataIterator<S> iterator) {
this.mapper = mapper;
this.iterator = iterator;
}
@Override
public boolean hasNext() throws DAOException {
return iterator.hasNext();
}
@Override
public T next() throws DAOException {
if (hasNext())
return mapper.map(iterator.next());
throw new NoSuchElementException();
}
@Override
public void close() {
iterator.close();
}
@Override
public void remove() throws DAOException, UnsupportedOperationException {
iterator.remove();
}
@Override
public void update(T t) throws DAOException, UnsupportedOperationException {
iterator.update(mapper.unmap(t));
}
}