CharEscaper that uses an array to quickly look up replacement characters for a given
char value. An additional safe range is provided that determines whether char
values without specific replacements are to be considered safe and left unescaped or should be
escaped in a general way.
A good example of usage of this class is for Java source code escaping where the replacement
array contains information about special ASCII characters such as \\t and \\n
while escapeUnsafe is overridden to handle general escaping of the form \\uxxxx.
The size of the data structure used by ArrayBasedCharEscaper is proportional to the
highest valued character that requires escaping. For example a replacement map containing the
single character '\u1000' will require approximately 16K of memory. If you need
to create multiple escaper instances that have the same character replacement mapping consider
using ArrayBasedEscaperMap.
| Modifier and Type | Field and Description |
|---|---|
| private final char[][] | |
| private final int | |
| private final char | |
| private final char |
| Access | Constructor and Description |
|---|---|
| protected | ArrayBasedCharEscaper(Map<Character, String>
a map of characters to their escaped representations replacementMap, char the lowest character value in the safe range safeMin, char the highest character value in the safe range safeMax)Creates a new ArrayBasedCharEscaper instance with the given replacement map and specified safe range. |
| protected | ArrayBasedCharEscaper(ArrayBasedEscaperMap
the mapping of characters to be escaped escaperMap, char the lowest character value in the safe range safeMin, char the highest character value in the safe range safeMax)Creates a new ArrayBasedCharEscaper instance with the given replacement map and specified safe range. |
| Modifier and Type | Method and Description |
|---|---|
| public final String | escape(String
the literal string to be escaped s)Overrides com. |
| protected final char[] | Returns: the replacement characters, ornull if no escaping was requiredthe character to escape if necessary c)Implements abstract com. |
| protected abstract char[] | Returns: the replacement characters, ornull if no escaping was requiredthe character to escape c)Escapes a |
| replacements | back to summary |
|---|---|
| private final char[][] replacements | |
| replacementsLength | back to summary |
|---|---|
| private final int replacementsLength | |
| safeMax | back to summary |
|---|---|
| private final char safeMax | |
| safeMin | back to summary |
|---|---|
| private final char safeMin | |
| ArrayBasedCharEscaper | back to summary |
|---|---|
| protected ArrayBasedCharEscaper(Map<Character, String> replacementMap, char safeMin, char safeMax) Creates a new ArrayBasedCharEscaper instance with the given replacement map and specified safe
range. If If a character has no mapped replacement then it is checked against the safe range. If it
lies outside that, then | |
| ArrayBasedCharEscaper | back to summary |
|---|---|
| protected ArrayBasedCharEscaper(ArrayBasedEscaperMap escaperMap, char safeMin, char safeMax) Creates a new ArrayBasedCharEscaper instance with the given replacement map and specified safe
range. If If a character has no mapped replacement then it is checked against the safe range. If it
lies outside that, then
| |
| escape | back to summary |
|---|---|
| public final String escape(String s) Overrides com. Doc from com. Returns the escaped form of a given literal string. | |
| escape | back to summary |
|---|---|
| protected final char[] escape(char c) Implements abstract com. Escapes a single character using the replacement array and safe range values. If the given
character does not have an explicit replacement and lies outside the safe range then
| |
| escapeUnsafe | back to summary |
|---|---|
| protected abstract char[] escapeUnsafe(char c) Escapes a Note that arrays returned by this method must not be modified once they have been returned. However it is acceptable to return the same array multiple times (even for different input characters).
| |