diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java new file mode 100644 index 0000000..1cf5d44 --- /dev/null +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/TokenDeaffixer.java @@ -0,0 +1,39 @@ +package bjc.utils.funcutils; + +import java.util.function.BiFunction; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.IFunctionalList; + +final class TokenDeaffixer implements + BiFunction<String, String, IFunctionalList<String>> { + private String token; + + public TokenDeaffixer(String tok) { + token = tok; + } + + @Override + public IFunctionalList<String> apply(String operatorName, + String operatorRegex) { + if (operatorName == null) { + throw new NullPointerException( + "Operator name must not be null"); + } else if (operatorRegex == null) { + throw new NullPointerException( + "Operator regex must not be null"); + } + + if (StringUtils.containsOnly(token, operatorRegex)) { + return new FunctionalList<>(token); + } else if (token.startsWith(operatorName)) { + return new FunctionalList<>(operatorName, + token.split(operatorRegex)[1]); + } else if (token.endsWith(operatorName)) { + return new FunctionalList<>(token.split(operatorRegex)[0], + operatorName); + } else { + return new FunctionalList<>(token); + } + } +}
\ No newline at end of file |
