package bjc.utils.ioutils.blocks; import java.io.IOException; import java.util.function.UnaryOperator; public class MappedBlockReader implements BlockReader { private BlockReader reader; private Block current; private UnaryOperator transform; public MappedBlockReader(BlockReader source, UnaryOperator trans) { reader = source; transform = trans; } @Override public boolean hasNextBlock() { return reader.hasNextBlock(); } @Override public Block getBlock() { return current; } @Override public boolean nextBlock() { if(hasNextBlock()) { current = trans.apply(reader.next()); return true; } return false; } @Override public int getBlockCount() { return reader.getBlockCount(); } }