summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/ioutils/blocks
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2018-02-12 22:19:02 -0500
committerbjculkin <bjculkin@mix.wvu.edu>2018-02-12 22:19:02 -0500
commit32f5da54c628408c96db09d279f3a7ef44b3bd19 (patch)
treeef56d04518b8791409ed65db58c304b74b23a01b /base/src/main/java/bjc/utils/ioutils/blocks
parent49cd96c4c5bbb883c0c5c10d7916ad2e93ff2df0 (diff)
Update
Diffstat (limited to 'base/src/main/java/bjc/utils/ioutils/blocks')
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/BoundBlockReader.java42
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java14
2 files changed, 42 insertions, 14 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;
}
diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java
index 0b43f7a..c575f05 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java
@@ -16,8 +16,8 @@ public class FilteredBlockReader implements BlockReader {
*
* Both have already been checked for the predicate.
*/
- private Block current;
- private Block pending;
+ private Block current;
+ private Block pending;
/*
* Number of blocks that passed the predicate.
@@ -39,8 +39,8 @@ public class FilteredBlockReader implements BlockReader {
}
public FilteredBlockReader(BlockReader src, Predicate<Block> predic, Consumer<Block> failAct) {
- source = src;
- pred = predic;
+ source = src;
+ pred = predic;
failAction = failAct;
blockNo = 0;
@@ -60,11 +60,11 @@ public class FilteredBlockReader implements BlockReader {
if(pred.test(pending)) {
blockNo += 1;
return true;
- } else {
- failAction.accept(pending);
}
+
+ failAction.accept(pending);
}
-
+
return false;
}