Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // inner class
- private enum TokenizerMode {
- SPACE_DELIMITING (' '),
- QUOTE_DELIMITING ('\'', '"', '`');
- final char[] validDelimiters;
- static Map<Set<Character>, TokenizerMode> reverseLookup = new HashMap<>();
- static char[] allValidDelimiters;
- static {
- for (TokenizerMode mode: values()) {
- Set<Character> characterSet = new HashSet<>();
- for (char c: mode.getValidDelimiters()) {
- characterSet.add(c);
- }
- reverseLookup.put(characterSet, mode);
- }
- }
- TokenizerMode(char... validDelimiters) {
- this.validDelimiters = validDelimiters;
- }
- static char[] getAllValidDelimiters() {
- if (allValidDelimiters == null) {
- char[] allValidDelimiters = new char[reverseLookup.keySet().size()];
- for (int i = 0; i < allValidDelimiters.length; i++) {
- allValidDelimiters[i] = reverseLookup.keySet().toArray(new Character[0])[i];
- }
- }
- return allValidDelimiters;
- }
- boolean checkIfValidDelimiter(char character) {
- for (char c: validDelimiters) {
- if (c == character) return true;
- }
- return false;
- }
- char[] getValidDelimiters() {
- return validDelimiters;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement