diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-10-13 15:51:53 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-10-13 15:51:53 -0400 |
| commit | 327c2a35bde7a13d77f343464e41e19e4a214790 (patch) | |
| tree | 8ae7a2698eed1e281c20b9333b79b2eaf6607a92 /base/src/main/java/bjc/utils/parserutils | |
| parent | bf9737ae3c61c638dca3a40ca847e784ddd750f3 (diff) | |
General cleanup and documentation.
Cleanup files, and add missing comments in places.
Diffstat (limited to 'base/src/main/java/bjc/utils/parserutils')
| -rw-r--r-- | base/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java | 105 | ||||
| -rw-r--r-- | base/src/main/java/bjc/utils/parserutils/splitter/SimpleTokenSplitter.java | 2 |
2 files changed, 78 insertions, 29 deletions
diff --git a/base/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java b/base/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java index 2a565f2..1ca0fc1 100644 --- a/base/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java +++ b/base/src/main/java/bjc/utils/parserutils/splitter/ConfigurableTokenSplitter.java @@ -16,15 +16,15 @@ import bjc.utils.funcdata.IList; * */ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { - private final Set<String> simpleDelimiters; - private final Set<String> multipleDelimiters; - private final Set<String> rRawDelimiters; + 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. + * Whether or not to keep delimiters. */ public ConfigurableTokenSplitter(final boolean keepDelims) { super(null, keepDelims); @@ -35,16 +35,25 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { rRawDelimiters = new LinkedHashSet<>(); } + private ConfigurableTokenSplitter(boolean keepDelims, Set<String> simpleDelimiters, + Set<String> multipleDelimiters, Set<String> rRawDelimiters) { + super(null, keepDelims); + + this.simpleDelimiters = simpleDelimiters; + this.multipleDelimiters = multipleDelimiters; + this.rRawDelimiters = rRawDelimiters; + } + /** * 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. + * The simple delimiters to add. */ public void addSimpleDelimiters(final String... simpleDelims) { - for(final String simpleDelim : simpleDelims) { + for (final String simpleDelim : simpleDelims) { simpleDelimiters.add(simpleDelim); } } @@ -56,10 +65,10 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { * literals. * * @param multiDelims - * The multiple delimiters to add. + * The multiple delimiters to add. */ public void addMultiDelimiters(final String... multiDelims) { - for(final String multiDelim : multiDelims) { + for (final String multiDelim : multiDelims) { multipleDelimiters.add(multiDelim); } } @@ -71,10 +80,10 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { * expressions. * * @param rRawDelims - * The raw delimiters to add. + * The raw delimiters to add. */ public void addRawDelimiters(final String... rRawDelims) { - for(final String rRawDelim : rRawDelims) { + for (final String rRawDelim : rRawDelims) { rRawDelimiters.add(rRawDelim); } } @@ -86,15 +95,15 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { public void compile() { final StringBuilder rPattern = new StringBuilder(); - for(final String rRawDelimiter : rRawDelimiters) { + for (final String rRawDelimiter : rRawDelimiters) { rPattern.append(applyFormat("rawDelim", rRawDelimiter)); } - for(final String multipleDelimiter : multipleDelimiters) { + for (final String multipleDelimiter : multipleDelimiters) { rPattern.append(applyFormat("multipleDelim", multipleDelimiter)); } - for(final String simpleDelimiter : simpleDelimiters) { + for (final String simpleDelimiter : simpleDelimiters) { rPattern.append(applyFormat("simpleDelim", simpleDelimiter)); } @@ -105,7 +114,7 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { @Override public IList<String> split(final String input) { - if(spliter == null) throw new IllegalStateException("Must compile splitter before use"); + if (spliter == null) throw new IllegalStateException("Must compile splitter before use"); return super.split(input); } @@ -117,36 +126,76 @@ public class ConfigurableTokenSplitter extends SimpleTokenSplitter { return String.format(fmt, simpleDelimiters, multipleDelimiters, rRawDelimiters, spliter); } - + + /** + * Builder class for the configurable token splitter. + * + * @author bjculkin + * + */ public static class Builder { private ConfigurableTokenSplitter cts; - + + /** + * Create a new splitter builder. + * + * @param keepDelims + * Whether or not to keep the delimited splitter. + */ public Builder(boolean keepDelims) { cts = new ConfigurableTokenSplitter(keepDelims); } - - public Builder simple(String...strings) { + + /** + * Add a set of simple delimiters. + * + * @param strings + * The simple delimiters to use. + * @return The builder, for chaining. + */ + public Builder simple(String... strings) { cts.addSimpleDelimiters(strings); - + return this; } - - public Builder multiple(String...strings) { + + /** + * Add a set of multiple delimiters. + * + * @param strings + * The multiple delimiters to use. + * @return The builder, for chaining. + */ + public Builder multiple(String... strings) { cts.addMultiDelimiters(strings); - + return this; } - - public Builder raw(String...strings) { + + /** + * Add a set of raw delimiters. + * + * @param strings + * The raw delimiters to use. + * @return The builder, for chaining. + */ + public Builder raw(String... strings) { cts.addRawDelimiters(strings); - + return this; } - + + /** + * Build the splitter. + * + * @return The built splitter. + */ public ConfigurableTokenSplitter build() { - cts.compile(); + ConfigurableTokenSplitter ret = new ConfigurableTokenSplitter(cts.keepDelim, + cts.simpleDelimiters, cts.multipleDelimiters, cts.rRawDelimiters); + ret.compile(); - return cts; + return ret; } } } diff --git a/base/src/main/java/bjc/utils/parserutils/splitter/SimpleTokenSplitter.java b/base/src/main/java/bjc/utils/parserutils/splitter/SimpleTokenSplitter.java index 4e97008..9eb2d48 100644 --- a/base/src/main/java/bjc/utils/parserutils/splitter/SimpleTokenSplitter.java +++ b/base/src/main/java/bjc/utils/parserutils/splitter/SimpleTokenSplitter.java @@ -15,7 +15,7 @@ import bjc.utils.ioutils.RegexStringEditor; public class SimpleTokenSplitter implements TokenSplitter { protected Pattern spliter; - private final boolean keepDelim; + protected final boolean keepDelim; /** * Create a new simple token splitter. |
