summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/parserutils
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/parserutils')
-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);
+ }
+}