summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc
diff options
context:
space:
mode:
authorstudent <student@localhost>2018-03-02 11:54:49 -0500
committerstudent <student@localhost>2018-03-02 11:54:49 -0500
commit7bba6e0f36d71301a352a59573a8fd34a3efce8e (patch)
tree1ad2ea72f83777bd97bb78cbbbb726dfa873abf0 /base/src/main/java/bjc
parentcff383ea8c42cdd224ae29d5274ca001b7513559 (diff)
Add a factory for token splitters
Diffstat (limited to 'base/src/main/java/bjc')
-rw-r--r--base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java b/base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java
new file mode 100644
index 0000000..c8827b6
--- /dev/null
+++ b/base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java
@@ -0,0 +1,41 @@
+package bjc.utils.parserutils.splitter;
+
+import java.util.function.UnaryOperator;
+
+/**
+ * Factory methods for producing token splitters.
+ *
+ * @author student
+ *
+ */
+public class TokenSplitters {
+ /**
+ * Create a new chained token splitter.
+ *
+ * @param splitters
+ * The series of splitters to chain together.
+ * @return A chained-together series of splitters.
+ */
+ public static TokenSplitter chainSplitter(final TokenSplitter... splitters) {
+ ChainTokenSplitter cts = new ChainTokenSplitter();
+
+ cts.appendSplitters(splitters);
+
+ return cts;
+ }
+
+ /**
+ * Create a new transforming token splitter.
+ *
+ * @param splitter
+ * The splitter to gain tokens from
+ *
+ * @param transform
+ * The transform to apply to the strings.
+ *
+ * @return A splitter that applies the chosen transform to the tokens.
+ */
+ public static TokenSplitter transformSplitter(final TokenSplitter splitter, UnaryOperator<String> transform) {
+ return new TransformTokenSplitter(splitter, transform);
+ }
+}