summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/ioutils
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/ioutils')
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java25
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/FlatMappedBlockReader.java18
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/MappedBlockReader.java20
-rw-r--r--base/src/main/java/bjc/utils/ioutils/blocks/PushbackBlockReader.java22
4 files changed, 66 insertions, 19 deletions
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 c575f05..070713d 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/FilteredBlockReader.java
@@ -5,6 +5,12 @@ import java.io.IOException;
import java.util.function.Consumer;
import java.util.function.Predicate;
+/**
+ * A block reader that only yields blocks that pass a predicate.
+ *
+ * @author EVE
+ *
+ */
public class FilteredBlockReader implements BlockReader {
/*
* The source of blocks.
@@ -34,10 +40,29 @@ public class FilteredBlockReader implements BlockReader {
*/
private Consumer<Block> failAction;
+ /**
+ * Create a new filtered block reader with a given filter.
+ *
+ * @param src
+ * The place to read blocks from.
+ * @param predic
+ * The predicate to use to pass blocks.
+ */
public FilteredBlockReader(BlockReader src, Predicate<Block> predic) {
this(src, predic, null);
}
+ /**
+ * Create a new filtered block reader with a given filter that executes
+ * a specific action when a block fails.
+ *
+ * @param src
+ * The place to read blocks from.
+ * @param predic
+ * The predicate to use to pass blocks.
+ * @param failAct
+ * The action to take when a block fails.
+ */
public FilteredBlockReader(BlockReader src, Predicate<Block> predic, Consumer<Block> failAct) {
source = src;
pred = predic;
diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/FlatMappedBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/FlatMappedBlockReader.java
index 16d2e44..bab463e 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/FlatMappedBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/FlatMappedBlockReader.java
@@ -22,8 +22,8 @@ public class FlatMappedBlockReader implements BlockReader {
/*
* The current block, and any blocks pending from the last source block.
*/
- private Iterator<Block> pending;
- private Block current;
+ private Iterator<Block> pending;
+ private Block current;
/*
* The operator to open blocks with.
@@ -35,8 +35,16 @@ public class FlatMappedBlockReader implements BlockReader {
*/
private int blockNo;
+ /**
+ * Create a new flat-mapping block reader.
+ *
+ * @param source
+ * The source to read blocks from
+ * @param trans
+ * The transform to use.
+ */
public FlatMappedBlockReader(BlockReader source, Function<Block, List<Block>> trans) {
- reader = source;
+ reader = source;
transform = trans;
blockNo = 0;
@@ -52,7 +60,7 @@ public class FlatMappedBlockReader implements BlockReader {
return current;
}
- @Override
+ @Override
public boolean nextBlock() {
/*
* Attempt to get a new pending list if the one we have isn't
@@ -67,7 +75,7 @@ public class FlatMappedBlockReader implements BlockReader {
/*
* Advance the iterator.
*/
- current = pending.next();
+ current = pending.next();
blockNo += 1;
return true;
diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/MappedBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/MappedBlockReader.java
index 12fa848..72da16d 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/MappedBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/MappedBlockReader.java
@@ -4,6 +4,12 @@ import java.io.IOException;
import java.util.function.UnaryOperator;
+/**
+ * A block reader that applies a transform to each block.
+ *
+ * @author EVE
+ *
+ */
public class MappedBlockReader implements BlockReader {
private BlockReader reader;
@@ -13,8 +19,16 @@ public class MappedBlockReader implements BlockReader {
private int blockNo;
+ /**
+ * Create a new mapped block reader.
+ *
+ * @param source
+ * The source for blocks
+ * @param trans
+ * The transform to apply.
+ */
public MappedBlockReader(BlockReader source, UnaryOperator<Block> trans) {
- reader = source;
+ reader = source;
transform = trans;
blockNo = 0;
@@ -30,10 +44,10 @@ public class MappedBlockReader implements BlockReader {
return current;
}
- @Override
+ @Override
public boolean nextBlock() {
if(hasNextBlock()) {
- current = transform.apply(reader.next());
+ current = transform.apply(reader.next());
blockNo += 1;
return true;
diff --git a/base/src/main/java/bjc/utils/ioutils/blocks/PushbackBlockReader.java b/base/src/main/java/bjc/utils/ioutils/blocks/PushbackBlockReader.java
index 0cc9dea..924df39 100644
--- a/base/src/main/java/bjc/utils/ioutils/blocks/PushbackBlockReader.java
+++ b/base/src/main/java/bjc/utils/ioutils/blocks/PushbackBlockReader.java
@@ -27,7 +27,7 @@ public class PushbackBlockReader implements BlockReader {
* Create a new pushback block reader.
*
* @param src
- * The block reader to use when no blocks are queued.
+ * The block reader to use when no blocks are queued.
*/
public PushbackBlockReader(final BlockReader src) {
source = src;
@@ -50,22 +50,22 @@ public class PushbackBlockReader implements BlockReader {
/*
* Drain pushed-back blocks first.
*/
- if (!waiting.isEmpty()) {
+ if(!waiting.isEmpty()) {
curBlock = waiting.pop();
blockNo += 1;
return true;
- } else {
- final boolean succ = source.nextBlock();
- curBlock = source.getBlock();
+ }
- if (succ) {
- blockNo += 1;
- }
+ final boolean succ = source.nextBlock();
+ curBlock = source.getBlock();
- return succ;
+ if(succ) {
+ blockNo += 1;
}
+
+ return succ;
}
@Override
@@ -82,7 +82,7 @@ public class PushbackBlockReader implements BlockReader {
* Insert a block at the back of the queue of pending blocks.
*
* @param blk
- * The block to put at the back.
+ * The block to put at the back.
*/
public void addBlock(final Block blk) {
waiting.add(blk);
@@ -92,7 +92,7 @@ public class PushbackBlockReader implements BlockReader {
* Insert a block at the front of the queue of pending blocks.
*
* @param blk
- * The block to put at the front.
+ * The block to put at the front.
*/
public void pushBlock(final Block blk) {
waiting.push(blk);