public String writeToString() { if (text == null || text.isEmpty()) return ""; StringBuilder result = new StringBuilder(); result.append(mode.getCode()); if (caseSensitive) { result.append('C'); } if (regexSearch) { result.append('R'); } if (mapCSSSearch) { result.append('M'); } if (allElements) { result.append('A'); } result.append(' ').append(text); return result.toString(); }
public static SearchSetting readFromString(String s) { if (s.isEmpty()) return null; SearchSetting result = new SearchSetting(); int index = 1; result.mode = SearchMode.fromCode(s.charAt(0)); if (result.mode == null) { result.mode = SearchMode.replace; index = 0; } while (index < s.length()) { if (s.charAt(index) == 'C') { result.caseSensitive = true; } else if (s.charAt(index) == 'R') { result.regexSearch = true; } else if (s.charAt(index) == 'A') { result.allElements = true; } else if (s.charAt(index) == 'M') { result.mapCSSSearch = true; } else if (s.charAt(index) == ' ') { break; } else { Main.warn("Unknown char in SearchSettings: " + s); break; } index++; } if (index < s.length() && s.charAt(index) == ' ') { index++; } result.text = s.substring(index); return result; }
/** * Returns the search mode matching the given character code. * * @param code character code * @return search mode matching the given character code */ public static SearchMode fromCode(char code) { for (SearchMode mode : values()) { if (mode.getCode() == code) return mode; } return null; }