summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-03-27 23:25:47 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-03-27 23:25:47 -0400
commit5b8c57f577151d8de4bd4ef95d9568ec3ba99fc9 (patch)
tree25512cc880b5139742db116b6638a4bf916c9305 /BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java
parent4da4974456179168125fd78e5bde09c2de81b258 (diff)
Implement more BlockReader types
Adds additional useful block reader types. * LayeredBlockReader, which represents priority * SerialBlockReader, which concatenates readers
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java40
1 files changed, 34 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java b/BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java
index 8a359b8..3d71f52 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/ioutils/BlockReaders.java
@@ -13,10 +13,10 @@ public class BlockReaders {
* Create a new simple block reader that works off a regex.
*
* @param blockDelim
- * The regex that seperates blocks.
+ * The regex that separates blocks.
*
* @param source
- * The reader to get blocks from.
+ * The reader to get blocks from.
*
* @return A configured simple reader.
*/
@@ -28,7 +28,7 @@ public class BlockReaders {
* Create a new pushback block reader.
*
* @param src
- * The block reader to read blocks from.
+ * The block reader to read blocks from.
*
* @return A configured pushback reader.
*/
@@ -40,14 +40,42 @@ public class BlockReaders {
* Create a new triggered block reader.
*
* @param source
- * The block reader to read blocks from.
+ * The block reader to read blocks from.
*
* @param action
- * The action to execute before reading a block.
+ * The action to execute before reading a block.
*
* @return A configured triggered block reader.
*/
public static BlockReader trigger(BlockReader source, Runnable action) {
return new TriggeredBlockReader(source, action);
}
-}
+
+ /**
+ * Create a new layered block reader.
+ *
+ * @param primary
+ * The first source to read blocks from.
+ *
+ * @param secondary
+ * The second source to read blocks from.
+ *
+ * @return A configured layered block reader.
+ */
+ public static BlockReader layered(BlockReader primary, BlockReader secondary) {
+ return new LayeredBlockReader(primary, secondary);
+ }
+
+ /**
+ * Create a new serial block reader.
+ *
+ * @param readers
+ * The readers to pull from, in the order to pull from
+ * them.
+ *
+ * @return A configured serial block reader.
+ */
+ public static BlockReader serial(BlockReader... readers) {
+ return new SerialBlockReader(readers);
+ }
+} \ No newline at end of file