From 7bba6e0f36d71301a352a59573a8fd34a3efce8e Mon Sep 17 00:00:00 2001 From: student Date: Fri, 2 Mar 2018 11:54:49 -0500 Subject: Add a factory for token splitters --- .../utils/parserutils/splitter/TokenSplitters.java | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java (limited to 'base/src/main/java/bjc') 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 transform) { + return new TransformTokenSplitter(splitter, transform); + } +} -- cgit v1.2.3