// License: GPL. For details, see LICENSE file. package CommandLine; import java.util.HashMap; public class Relay { static String marker = "\u0332"; private String optionsString; private final HashMap<String, String> options; private String value; public Relay() { optionsString = ""; value = ""; options = new HashMap<>(); } public void setValue(String value) { if (options.containsKey(value)) this.value = options.get(value); else if (options.containsValue(value)) this.value = value; } public void addValue(String value) { String letter = null; if (!(options.containsValue(value))) { int i = 0; for (; i < value.length(); i++) { letter = value.substring(i, i + 1).toLowerCase(); if (!options.containsKey(letter)) break; } if (i == value.length()) { letter = String.valueOf(System.currentTimeMillis()); optionsString = optionsString + (optionsString.length() == 0 ? "" : ", ") + value; } else optionsString = optionsString + (optionsString.length() == 0 ? "" : ", ") + value.substring(0, i) + marker + value.substring(i); options.put(letter, value); } this.value = value; } public String getValue() { return value; } public boolean isCorrectValue(String value) { return options.containsValue(value) || options.containsKey(value.toLowerCase()); } public String getOptionsString() { return optionsString; } }