From 05bb1067b348f43108fd04b968dc53fc338373fb Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Tue, 16 Aug 2022 23:04:07 -0400 Subject: Update a few things --- .../utils/ioutils/blocks/IteratorBlockReader.java | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 base/src/main/java/bjc/utils/ioutils/blocks/IteratorBlockReader.java (limited to 'base/src/main/java/bjc/utils/ioutils/blocks/IteratorBlockReader.java') diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/IteratorBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/IteratorBlockReader.java new file mode 100644 index 0000000..de4a083 --- /dev/null +++ b/base/src/main/java/bjc/utils/ioutils/blocks/IteratorBlockReader.java @@ -0,0 +1,52 @@ +package bjc.utils.ioutils.blocks; + +import java.io.IOException; +import java.util.Iterator; + +/** + * BlockReader which produces blocks from an iterator + * + * @author bjcul + */ +public final class IteratorBlockReader implements BlockReader { + private final Iterator iter; + private Block currBlock; + private int blockCount = 0; + + /** + * Create a new block reader from an iterator. + * + * @param iter The iterator to get blocks from. + */ + public IteratorBlockReader(Iterator iter) { + this.iter = iter; + } + + @Override + public boolean nextBlock() { + if (!iter.hasNext()) return false; + currBlock = iter.next(); + blockCount++; + return true; + } + + @Override + public boolean hasNextBlock() { + return iter.hasNext(); + } + + @Override + public int getBlockCount() { + return blockCount; + } + + @Override + public Block getBlock() { + return currBlock; + } + + @Override + public void close() throws IOException { + // Nothing for us to really do + } +} \ No newline at end of file -- cgit v1.2.3