summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-10-08 22:39:59 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2017-10-08 22:39:59 -0300
commitc82e3b3b2de0633317ec8fc85925e91422820597 (patch)
tree96567416ce23c5ce85601f9cedc3a94bb1c55cba /BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java
parentb3ac1c8690c3e14c879913e5dcc03a5f5e14876e (diff)
Start splitting into maven modules
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java122
1 files changed, 0 insertions, 122 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java
deleted file mode 100644
index 48ddcb4..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package bjc.utils.parserutils.splitter;
-
-import static bjc.utils.PropertyDB.applyFormat;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import bjc.utils.funcdata.IList;
-
-/**
- * Split a string into pieces around a regular expression, and offer an easy way
- * to configure the regular expression.
- *
- * @author EVE
- *
- */
-public class ConfigurableTokenSplitter extends SimpleTokenSplitter {
- private final Set<String> simpleDelimiters;
- private final Set<String> multipleDelimiters;
- private final Set<String> rRawDelimiters;
-
- /**
- * Create a new token splitter with blank configuration.
- *
- * @param keepDelims
- * Whether or not to keep delimiters.
- */
- public ConfigurableTokenSplitter(final boolean keepDelims) {
- super(null, keepDelims);
-
- /*
- * Use linked hash-sets to keep items in insertion order.
- */
- simpleDelimiters = new LinkedHashSet<>();
- multipleDelimiters = new LinkedHashSet<>();
- rRawDelimiters = new LinkedHashSet<>();
- }
-
- /**
- * Add a set of simple delimiters to this splitter.
- *
- * Simple delimiters match one occurrence of themselves as literals.
- *
- * @param simpleDelims
- * The simple delimiters to add.
- */
- public void addSimpleDelimiters(final String... simpleDelims) {
- for (final String simpleDelim : simpleDelims) {
- simpleDelimiters.add(simpleDelim);
- }
- }
-
- /**
- * Add a set of multiple delimiters to this splitter.
- *
- * Multiple delimiters match one or more occurrences of themselves as
- * literals.
- *
- * @param multiDelims
- * The multiple delimiters to add.
- */
- public void addMultiDelimiters(final String... multiDelims) {
- for (final String multiDelim : multiDelims) {
- multipleDelimiters.add(multiDelim);
- }
- }
-
- /**
- * Add a set of raw delimiters to this splitter.
- *
- * Raw delimiters match one occurrence of themselves as regular
- * expressions.
- *
- * @param rRawDelims
- * The raw delimiters to add.
- */
- public void addRawDelimiters(final String... rRawDelims) {
- for (final String rRawDelim : rRawDelims) {
- rRawDelimiters.add(rRawDelim);
- }
- }
-
- /**
- * Take the configuration and compile it into a regular expression to
- * use when splitting.
- */
- public void compile() {
- final StringBuilder rPattern = new StringBuilder();
-
- for (final String rRawDelimiter : rRawDelimiters) {
- rPattern.append(applyFormat("rawDelim", rRawDelimiter));
- }
-
- for (final String multipleDelimiter : multipleDelimiters) {
- rPattern.append(applyFormat("multipleDelim", multipleDelimiter));
- }
-
- for (final String simpleDelimiter : simpleDelimiters) {
- rPattern.append(applyFormat("simpleDelim", simpleDelimiter));
- }
-
- rPattern.deleteCharAt(rPattern.length() - 1);
-
- spliter = Pattern.compile(rPattern.toString());
- }
-
- @Override
- public IList<String> split(final String input) {
- if (spliter == null) throw new IllegalStateException("Must compile splitter before use");
-
- return super.split(input);
- }
-
- @Override
- public String toString() {
- final String fmt = "ConfigurableTokenSplitter [simpleDelimiters=%s, multipleDelimiters=%s,"
- + " rRawDelimiters=%s, spliter=%s]";
-
- return String.format(fmt, simpleDelimiters, multipleDelimiters, rRawDelimiters, spliter);
- }
-}