diff options
| author | student <student@localhost> | 2018-03-02 11:54:49 -0500 |
|---|---|---|
| committer | student <student@localhost> | 2018-03-02 11:54:49 -0500 |
| commit | 7bba6e0f36d71301a352a59573a8fd34a3efce8e (patch) | |
| tree | 1ad2ea72f83777bd97bb78cbbbb726dfa873abf0 /base/src | |
| parent | cff383ea8c42cdd224ae29d5274ca001b7513559 (diff) | |
Add a factory for token splitters
Diffstat (limited to 'base/src')
| -rw-r--r-- | base/src/main/java/bjc/utils/parserutils/splitter/TokenSplitters.java | 41 |
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); + } +} |
