summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java')
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java42
1 files changed, 35 insertions, 7 deletions
diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java
index b1e82d7..36e0ac1 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java
@@ -5,24 +5,52 @@ import java.io.IOException;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
+/**
+ * A block reader composed from functions.
+ *
+ * @author EVE
+ *
+ */
public class BoundBlockReader implements BlockReader {
+ /**
+ * A function that serves to close an I/O source.
+ *
+ * @author EVE
+ *
+ */
@FunctionalInterface
public interface Closer {
+ /**
+ * Close the I/O source this is attached to.
+ *
+ * @throws IOException
+ * If something goes wrong
+ */
public void close() throws IOException;
}
- private BooleanSupplier checker;
- private Supplier<Block> getter;
- private Closer closer;
+ private BooleanSupplier checker;
+ private Supplier<Block> getter;
+ private Closer closer;
private Block current;
private int blockNo;
+ /**
+ * Create a new bound block reader.
+ *
+ * @param blockChecker
+ * Predicate for checking if a block is available
+ * @param blockGetter
+ * Function to retrieve a block
+ * @param blockCloser
+ * Function to close a block source
+ */
public BoundBlockReader(BooleanSupplier blockChecker, Supplier<Block> blockGetter, Closer blockCloser) {
checker = blockChecker;
- getter = blockGetter;
- closer = blockCloser;
+ getter = blockGetter;
+ closer = blockCloser;
blockNo = 0;
}
@@ -40,11 +68,11 @@ public class BoundBlockReader implements BlockReader {
@Override
public boolean nextBlock() {
if(checker.getAsBoolean()) {
- current = getter.get();
+ current = getter.get();
blockNo += 1;
return true;
- }
+ }
return false;
}