20 package net.sf.gridarta.preferences;
22 import java.util.regex.Matcher;
23 import java.util.regex.Pattern;
24 import org.jetbrains.annotations.NotNull;
39 private static final Pattern @NotNull []
PATTERNS_ENCODE = { Pattern.compile(
"\\\\"), Pattern.compile(
"\r"), Pattern.compile(
"\n"), };
45 private static final String @NotNull []
REPLACEMENTS_ENCODE = { Matcher.quoteReplacement(
"\\\\"), Matcher.quoteReplacement(
"\\r"), Matcher.quoteReplacement(
"\\n"), };
52 private static final Pattern @NotNull []
PATTERNS_DECODE = { Pattern.compile(
"\\\\n"), Pattern.compile(
"\\\\r"), Pattern.compile(
"\\\\\\\\"), };
58 private static final String @NotNull []
REPLACEMENTS_DECODE = { Matcher.quoteReplacement(
"\n"), Matcher.quoteReplacement(
"\r"), Matcher.quoteReplacement(
"\\"), };
73 public static String
encode(@NotNull
final String str) {
74 final StringBuilder sb =
new StringBuilder();
75 for (
int i = 0; i < str.length(); i++) {
76 final char ch = str.charAt(i);
105 public static String
decode(@NotNull
final String str) {
106 final StringBuilder sb =
new StringBuilder();
108 while (i < str.length()) {
109 final char ch = str.charAt(i);
110 if (ch ==
'\\' && i + 1 < str.length()) {
112 final char ch2 = str.charAt(i);
137 return sb.toString();