22 package com.realtime.crossfire.jxclient.util;
24 import java.util.regex.Matcher;
25 import java.util.regex.Pattern;
26 import org.jetbrains.annotations.NotNull;
34 @SuppressWarnings(
"HtmlTagCanBeJavadocTag")
42 private static final Pattern[] PATTERNS_ENCODE = {
43 Pattern.compile(
"\\\\"),
44 Pattern.compile(
"\r"),
45 Pattern.compile(
"\n"),
52 private static final String[] REPLACEMENTS_ENCODE = {
53 Matcher.quoteReplacement(
"\\\\"),
54 Matcher.quoteReplacement(
"\\r"),
55 Matcher.quoteReplacement(
"\\n"),
63 private static final Pattern[] PATTERNS_DECODE = {
64 Pattern.compile(
"\\\\n"),
65 Pattern.compile(
"\\\\r"),
66 Pattern.compile(
"\\\\\\\\"),
73 private static final String[] REPLACEMENTS_DECODE = {
74 Matcher.quoteReplacement(
"\n"),
75 Matcher.quoteReplacement(
"\r"),
76 Matcher.quoteReplacement(
"\\"),
92 public static String
encode(@NotNull
final String str) {
93 assert PATTERNS_ENCODE.length == REPLACEMENTS_ENCODE.length;
95 for (
int i = 0; i < PATTERNS_ENCODE.length; i++) {
96 tmp = PATTERNS_ENCODE[i].matcher(tmp).replaceAll(REPLACEMENTS_ENCODE[i]);
108 public static String
decode(@NotNull
final String str) {
109 assert PATTERNS_DECODE.length == REPLACEMENTS_DECODE.length;
111 for (
int i = 0; i < PATTERNS_DECODE.length; i++) {
112 tmp = PATTERNS_DECODE[i].matcher(tmp).replaceAll(REPLACEMENTS_DECODE[i]);
static String encode(@NotNull final String str)
Encodes a string to make it fit into one line.
Codec()
Private constructor to prevent instantiation.
static String decode(@NotNull final String str)
Decodes a string which was encoded by encode(String).
Utility class to encode arbitrary Strings to fit in a single text line.