summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java115
1 files changed, 0 insertions, 115 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java b/BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java
deleted file mode 100644
index 734bde8..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/ioutils/blocks/SimpleBlockReader.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package bjc.utils.ioutils.blocks;
-
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.Reader;
-import java.util.NoSuchElementException;
-import java.util.Scanner;
-import java.util.regex.Pattern;
-
-import bjc.utils.funcutils.StringUtils;
-/**
- * Simple implementation of {@link BlockReader}
- *
- * NOTE: The EOF marker is always treated as a delimiter. You are expected to
- * handle blocks that may be shorter than you expect.
- *
- * @author EVE
- *
- */
-public class SimpleBlockReader implements BlockReader {
- /*
- * I/O source for blocks.
- */
- private final Scanner blockReader;
-
- /*
- * The current block.
- */
- private Block currBlock;
-
- /*
- * Info about the current block.
- */
- private int blockNo;
- private int lineNo;
-
- /**
- * Create a new block reader.
- *
- * @param blockDelim
- * The pattern that separates blocks. Note that the end
- * of file is always considered to end a block.
- *
- * @param source
- * The source to read blocks from.
- */
- public SimpleBlockReader(final String blockDelim, final Reader source) {
- blockReader = new Scanner(source);
-
- final String pattern = String.format("(?:%s)|\\Z", blockDelim);
- final Pattern pt = Pattern.compile(pattern, Pattern.MULTILINE);
-
- blockReader.useDelimiter(pt);
-
- lineNo = 1;
- }
-
- @Override
- public boolean hasNextBlock() {
- return blockReader.hasNext();
- }
-
- @Override
- public Block getBlock() {
- return currBlock;
- }
-
- @Override
- public boolean nextBlock() {
- try {
- /*
- * Read in a new block, and keep the line numbers sane.
- */
- final int blockStartLine = lineNo;
- final String blockContents = blockReader.next();
- final int blockEndLine = lineNo + StringUtils.countMatches(blockContents, "\\R");
-
- lineNo = blockEndLine;
- blockNo += 1;
-
- currBlock = new Block(blockNo, blockContents, blockStartLine, blockEndLine);
-
- return true;
- } catch (final NoSuchElementException nseex) {
- currBlock = null;
-
- return false;
- }
- }
-
- @Override
- public int getBlockCount() {
- return blockNo;
- }
-
- @Override
- public void close() throws IOException {
- blockReader.close();
- }
-
- /**
- * Set the delimiter used to separate blocks.
- *
- * @param delim
- * The delimiter used to separate blocks.
- */
- public void setDelimiter(final String delim) {
- blockReader.useDelimiter(delim);
- }
-
- @Override
- public String toString() {
- return String.format("SimpleBlockReader [currBlock=%s, blockNo=%s]", currBlock, blockNo);
- }
-}