Class Escaping


  • public class Escaping
    extends java.lang.Object
    • Field Detail

      • ESCAPABLE

        public static final java.lang.String ESCAPABLE
      • BACKSLASH_ONLY

        private static final java.util.regex.Pattern BACKSLASH_ONLY
      • ESCAPED_CHAR

        private static final java.util.regex.Pattern ESCAPED_CHAR
      • BACKSLASH_OR_AMP

        private static final java.util.regex.Pattern BACKSLASH_OR_AMP
      • AMP_ONLY

        private static final java.util.regex.Pattern AMP_ONLY
      • ENTITY_OR_ESCAPED_CHAR

        private static final java.util.regex.Pattern ENTITY_OR_ESCAPED_CHAR
      • ENTITY_ONLY

        private static final java.util.regex.Pattern ENTITY_ONLY
      • XML_SPECIAL_RE

        private static final java.util.regex.Pattern XML_SPECIAL_RE
      • XML_SPECIAL_OR_ENTITY

        private static final java.util.regex.Pattern XML_SPECIAL_OR_ENTITY
      • ESCAPE_IN_URI

        private static final java.util.regex.Pattern ESCAPE_IN_URI
      • ESCAPE_URI_DECODE

        private static final java.util.regex.Pattern ESCAPE_URI_DECODE
      • HEX_DIGITS

        static final char[] HEX_DIGITS
      • WHITESPACE

        private static final java.util.regex.Pattern WHITESPACE
      • COLLAPSE_WHITESPACE

        private static final java.util.regex.Pattern COLLAPSE_WHITESPACE
      • COLLAPSE_WHITESPACE_REPLACER

        private static final Escaping.Replacer COLLAPSE_WHITESPACE_REPLACER
      • AMP_BACKSLASH_SET

        @NotNull
        public static final @NotNull CharPredicate AMP_BACKSLASH_SET
      • random

        private static java.util.Random random
    • Constructor Detail

      • Escaping

        public Escaping()
    • Method Detail

      • escapeHtml

        public static java.lang.String escapeHtml​(@NotNull
                                                  @NotNull java.lang.CharSequence s,
                                                  boolean preserveEntities)
      • unescapeString

        @NotNull
        public static @NotNull java.lang.String unescapeString​(@NotNull
                                                               @NotNull java.lang.CharSequence s)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - string to un-escape
        Returns:
        un-escaped string
      • unescapeString

        @NotNull
        public static @NotNull java.lang.String unescapeString​(@NotNull
                                                               @NotNull java.lang.CharSequence s,
                                                               boolean unescapeEntities)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - string to un-escape
        unescapeEntities - true if HTML entities are to be unescaped
        Returns:
        un-escaped string
      • unescape

        @NotNull
        public static @NotNull BasedSequence unescape​(@NotNull
                                                      @NotNull BasedSequence s,
                                                      @NotNull
                                                      @NotNull ReplacedTextMapper textMapper)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - based sequence to un-escape
        textMapper - replaced text mapper to update for the changed text
        Returns:
        un-escaped sequence
      • removeAll

        @NotNull
        public static @NotNull BasedSequence removeAll​(@NotNull
                                                       @NotNull BasedSequence s,
                                                       @NotNull
                                                       @NotNull java.lang.CharSequence remove,
                                                       @NotNull
                                                       @NotNull ReplacedTextMapper textMapper)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - sequence being changed
        remove - string to remove
        textMapper - replaced text mapper to update for the changed text
        Returns:
        un-escaped sequence
      • unescapeHtml

        @NotNull
        public static @NotNull java.lang.String unescapeHtml​(@NotNull
                                                             @NotNull java.lang.CharSequence s)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - string to un-escape
        Returns:
        un-escaped string
      • unescapeHtml

        @NotNull
        public static @NotNull BasedSequence unescapeHtml​(@NotNull
                                                          @NotNull BasedSequence s,
                                                          @NotNull
                                                          @NotNull ReplacedTextMapper textMapper)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - based sequence to un-escape
        textMapper - replaced text mapper to update for the changed text
        Returns:
        un-escaped sequence
      • unescapeHtml

        @NotNull
        public static @NotNull BasedSequence unescapeHtml​(@NotNull
                                                          @NotNull BasedSequence s,
                                                          @NotNull
                                                          @NotNull java.util.List<Range> ranges,
                                                          @NotNull
                                                          @NotNull ReplacedTextMapper textMapper)
        Replace entities and backslash escapes with literal characters.
        Parameters:
        s - based sequence to un-escape
        textMapper - replaced text mapper to update for the changed text
        Returns:
        un-escaped sequence
      • normalizeEndWithEOL

        @NotNull
        public static @NotNull java.lang.String normalizeEndWithEOL​(@NotNull
                                                                    @NotNull java.lang.CharSequence s)
        Normalize eol: embedded \r and \r\n are converted to \n

        Append EOL sequence if sequence does not already end in EOL

        Parameters:
        s - sequence to convert
        Returns:
        converted sequence
      • normalizeEOL

        @NotNull
        public static @NotNull java.lang.String normalizeEOL​(@NotNull
                                                             @NotNull java.lang.CharSequence s)
        Normalize eol: embedded \r and \r\n are converted to \n
        Parameters:
        s - sequence to convert
        Returns:
        converted sequence
      • normalizeEOL

        @NotNull
        public static @NotNull java.lang.String normalizeEOL​(@NotNull
                                                             @NotNull java.lang.CharSequence s,
                                                             boolean endWithEOL)
        Normalize eol: embedded \r and \r\n are converted to \n
        Parameters:
        s - sequence to convert
        endWithEOL - true if an EOL is to be appended to the end of the sequence if not already ending with one.
        Returns:
        converted sequence
      • normalizeEndWithEOL

        @NotNull
        public static @NotNull BasedSequence normalizeEndWithEOL​(@NotNull
                                                                 @NotNull BasedSequence s,
                                                                 @NotNull
                                                                 @NotNull ReplacedTextMapper textMapper)
        Normalize eol: embedded \r and \r\n are converted to \n

        Append EOL sequence if sequence does not already end in EOL

        Parameters:
        s - sequence to convert
        textMapper - text mapper to update for the replaced text
        Returns:
        converted sequence
      • normalizeEOL

        @NotNull
        public static @NotNull BasedSequence normalizeEOL​(@NotNull
                                                          @NotNull BasedSequence s,
                                                          @NotNull
                                                          @NotNull ReplacedTextMapper textMapper)
        Normalize eol: embedded \r and \r\n are converted to \n
        Parameters:
        s - sequence to convert
        textMapper - text mapper to update for the replaced text
        Returns:
        converted sequence
      • normalizeEOL

        @NotNull
        public static @NotNull BasedSequence normalizeEOL​(@NotNull
                                                          @NotNull BasedSequence s,
                                                          @NotNull
                                                          @NotNull ReplacedTextMapper textMapper,
                                                          boolean endWithEOL)
        Normalize eol: embedded \r and \r\n are converted to \n

        Append EOL sequence if sequence does not already end in EOL

        Parameters:
        s - sequence to convert
        textMapper - text mapper to update for the replaced text
        endWithEOL - whether an EOL is to be appended to the end of the sequence if it does not already end with one.
        Returns:
        converted sequence
      • percentEncodeUrl

        @NotNull
        public static @NotNull java.lang.String percentEncodeUrl​(@NotNull
                                                                 @NotNull java.lang.CharSequence s)
        Parameters:
        s - string to encode
        Returns:
        encoded string
      • percentEncodeUrl

        @NotNull
        public static @NotNull BasedSequence percentEncodeUrl​(@NotNull
                                                              @NotNull BasedSequence s,
                                                              @NotNull
                                                              @NotNull ReplacedTextMapper textMapper)
        Parameters:
        s - string to encode
        textMapper - text mapper to update for the replaced text
        Returns:
        encoded string
      • percentDecodeUrl

        @NotNull
        public static @NotNull java.lang.String percentDecodeUrl​(@NotNull
                                                                 @NotNull java.lang.CharSequence s)
        Parameters:
        s - string to encode
        Returns:
        encoded string
      • percentDecodeUrl

        @NotNull
        public static @NotNull BasedSequence percentDecodeUrl​(@NotNull
                                                              @NotNull BasedSequence s,
                                                              @NotNull
                                                              @NotNull ReplacedTextMapper textMapper)
        Parameters:
        s - string to encode
        textMapper - text mapper to update for the replaced text
        Returns:
        encoded string
      • normalizeReference

        @NotNull
        public static @NotNull java.lang.String normalizeReference​(@NotNull
                                                                   @NotNull java.lang.CharSequence s,
                                                                   boolean changeCase)
        Normalize the link reference id
        Parameters:
        s - sequence containing the link reference id
        changeCase - if true then reference will be converted to lowercase
        Returns:
        normalized link reference id
      • encode

        @Nullable
        private static @Nullable java.lang.String encode​(char c)
      • obfuscate

        @NotNull
        public static @NotNull java.lang.String obfuscate​(@NotNull
                                                          @NotNull java.lang.String email,
                                                          boolean randomize)
        e-mail obfuscation from pegdown
        Parameters:
        email - e-mail url
        randomize - true to randomize, false for testing
        Returns:
        obfuscated e-mail url
      • normalizeReferenceChars

        @NotNull
        public static @NotNull java.lang.String normalizeReferenceChars​(@NotNull
                                                                        @NotNull java.lang.CharSequence s,
                                                                        boolean changeCase)
        Get a normalized the link reference id from reference characters

        Will remove leading ![ or [ and trailing ], collapse multiple whitespaces to a space and optionally convert the id to lowercase.

        Parameters:
        s - sequence containing the link reference id
        changeCase - if true then reference will be converted to lowercase
        Returns:
        normalized link reference id
      • collapseWhitespace

        @NotNull
        public static @NotNull java.lang.String collapseWhitespace​(@NotNull
                                                                   @NotNull java.lang.CharSequence s,
                                                                   boolean trim)
        Collapse regions of multiple white spaces to a single space
        Parameters:
        s - sequence to process
        trim - true if the sequence should also be trimmed
        Returns:
        processed sequence
      • replaceAll

        @NotNull
        private static @NotNull java.lang.String replaceAll​(@NotNull
                                                            @NotNull java.util.regex.Pattern p,
                                                            @NotNull
                                                            @NotNull java.lang.CharSequence s,
                                                            @NotNull
                                                            @NotNull Escaping.Replacer replacer)