private static String unescape()

in gflog-core/src/main/java/com/epam/deltix/gflog/core/layout/template/TemplateParser.java [33:68]


    private static String unescape(final String pattern) {
        if (pattern.contains(ESCAPE_START)) {
            final StringBuilder builder = new StringBuilder();

            final int length = pattern.length();
            int i = 0;

            while (true) {
                final int j = pattern.indexOf(ESCAPE_START, i);
                if (j == -1) {
                    break;
                }

                if (i < j) {
                    builder.append(pattern, i, j);
                }

                final int m = j + ESCAPE_START.length();
                final int k = j + ESCAPE_SIZE;

                final String value = pattern.substring(m, k);
                final char escaped = (char) Byte.parseByte(value, HEX_RADIX);

                builder.append(escaped);
                i = k;
            }

            if (i < length) {
                builder.append(pattern, i, length);
            }

            return builder.toString();
        }

        return pattern;
    }