org.unbescape.properties
Class PropertiesEscape

Object
  extended by org.unbescape.properties.PropertiesEscape

public final class PropertiesEscape
extends Object

Utility class for performing Java Properties (.properties files) escape/unescape operations.

This class supports both escaping of properties keys and properties values.

Configuration of escape/unescape operations

Escape operations can be (optionally) configured by means of:

Unescape operations need no configuration parameters. Unescape operations will always perform complete Java Properties unescape of SECs and u-based escapes.

Features

Specific features of the .properties key/value escape/unescape operations performed by means of this class:

Input/Output

There are two different input/output modes that can be used in escape/unescape operations:

Glossary

SEC
Single Escape Character: \t (U+0009), \n (U+000A), \f (U+000C), \r (U+000D) and \\ (U+005C). Besides, (U+0020), \: (U+003A) and \= (U+003D) will be used in Properties keys (not values).
UHEXA escapes
Also called u-based hexadecimal escapes or simply unicode escapes: complete representation of unicode codepoints up to U+FFFF, with \u followed by exactly four hexadecimal figures: \u00E1. Unicode codepoints > U+FFFF can be represented in Java by mean of two UHEXA escapes (a surrogate pair).
Unicode Codepoint
Each of the int values conforming the Unicode code space. Normally corresponding to a Java char primitive value (codepoint <= \uFFFF), but might be two chars for codepoints \u10000 to \u10FFFF if the first char is a high surrogate (\uD800 to \uDBFF) and the second is a low surrogate (\uDC00 to \uDFFF).

References

The following references apply:

Since:
1.0
Author:
Daniel Fernández

Method Summary
static void escapePropertiesKey(char[] text, int offset, int len, Writer writer)
           Perform a Java Properties Key level 2 (basic set and all non-ASCII chars) escape operation on a char[] input.
static void escapePropertiesKey(char[] text, int offset, int len, Writer writer, PropertiesKeyEscapeLevel level)
           Perform a (configurable) Java Properties Key escape operation on a char[] input.
static String escapePropertiesKey(String text)
           Perform a Java Properties Key level 2 (basic set and all non-ASCII chars) escape operation on a String input.
static String escapePropertiesKey(String text, PropertiesKeyEscapeLevel level)
           Perform a (configurable) Java Properties Key escape operation on a String input.
static void escapePropertiesKeyMinimal(char[] text, int offset, int len, Writer writer)
           Perform a Java Properties Key level 1 (only basic set) escape operation on a char[] input.
static String escapePropertiesKeyMinimal(String text)
           Perform a Java Properties Key level 1 (only basic set) escape operation on a String input.
static void escapePropertiesValue(char[] text, int offset, int len, Writer writer)
           Perform a Java Properties Value level 2 (basic set and all non-ASCII chars) escape operation on a char[] input.
static void escapePropertiesValue(char[] text, int offset, int len, Writer writer, PropertiesValueEscapeLevel level)
           Perform a (configurable) Java Properties Value escape operation on a String input.
static String escapePropertiesValue(String text)
           Perform a Java Properties Value level 2 (basic set and all non-ASCII chars) escape operation on a String input.
static String escapePropertiesValue(String text, PropertiesValueEscapeLevel level)
           Perform a (configurable) Java Properties Value escape operation on a String input.
static void escapePropertiesValueMinimal(char[] text, int offset, int len, Writer writer)
           Perform a Java Properties Value level 1 (only basic set) escape operation on a char[] input.
static String escapePropertiesValueMinimal(String text)
           Perform a Java Properties Value level 1 (only basic set) escape operation on a String input.
static void unescapeProperties(char[] text, int offset, int len, Writer writer)
           Perform a Java Properties (key or value) unescape operation on a char[] input.
static String unescapeProperties(String text)
           Perform a Java Properties (key or value) unescape operation on a String input.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

escapePropertiesValueMinimal

public static String escapePropertiesValueMinimal(String text)

Perform a Java Properties Value level 1 (only basic set) escape operation on a String input.

Level 1 means this method will only escape the Java Properties basic escape set:

This method calls escapePropertiesValue(String, PropertiesValueEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the String to be escaped.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesValue

public static String escapePropertiesValue(String text)

Perform a Java Properties Value level 2 (basic set and all non-ASCII chars) escape operation on a String input.

Level 2 means this method will escape:

This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to \uFFFF Hexadecimal Escapes.

This method calls escapePropertiesValue(String, PropertiesValueEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the String to be escaped.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesValue

public static String escapePropertiesValue(String text,
                                           PropertiesValueEscapeLevel level)

Perform a (configurable) Java Properties Value escape operation on a String input.

This method will perform an escape operation according to the specified PropertiesValueEscapeLevel argument value.

All other String-based escapePropertiesValue*(...) methods call this one with preconfigured level values.

This method is thread-safe.

Parameters:
text - the String to be escaped.
level - the escape level to be applied, see PropertiesValueEscapeLevel.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesValueMinimal

public static void escapePropertiesValueMinimal(char[] text,
                                                int offset,
                                                int len,
                                                Writer writer)
                                         throws IOException

Perform a Java Properties Value level 1 (only basic set) escape operation on a char[] input.

Level 1 means this method will only escape the Java Properties basic escape set:

This method calls escapePropertiesValue(char[], int, int, java.io.Writer, PropertiesValueEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
Throws:
IOException

escapePropertiesValue

public static void escapePropertiesValue(char[] text,
                                         int offset,
                                         int len,
                                         Writer writer)
                                  throws IOException

Perform a Java Properties Value level 2 (basic set and all non-ASCII chars) escape operation on a char[] input.

Level 2 means this method will escape:

This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to \uFFFF Hexadecimal Escapes.

This method calls escapePropertiesValue(char[], int, int, java.io.Writer, PropertiesValueEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
Throws:
IOException

escapePropertiesValue

public static void escapePropertiesValue(char[] text,
                                         int offset,
                                         int len,
                                         Writer writer,
                                         PropertiesValueEscapeLevel level)
                                  throws IOException

Perform a (configurable) Java Properties Value escape operation on a String input.

This method will perform an escape operation according to the specified PropertiesValueEscapeLevel argument value.

All other String-based escapePropertiesValue*(...) methods call this one with preconfigured level values.

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
level - the escape level to be applied, see PropertiesValueEscapeLevel.
Throws:
IOException

escapePropertiesKeyMinimal

public static String escapePropertiesKeyMinimal(String text)

Perform a Java Properties Key level 1 (only basic set) escape operation on a String input.

Level 1 means this method will only escape the Java Properties Key basic escape set:

This method calls escapePropertiesKey(String, PropertiesKeyEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the String to be escaped.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesKey

public static String escapePropertiesKey(String text)

Perform a Java Properties Key level 2 (basic set and all non-ASCII chars) escape operation on a String input.

Level 2 means this method will escape:

This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to \uFFFF Hexadecimal Escapes.

This method calls escapePropertiesKey(String, PropertiesKeyEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the String to be escaped.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesKey

public static String escapePropertiesKey(String text,
                                         PropertiesKeyEscapeLevel level)

Perform a (configurable) Java Properties Key escape operation on a String input.

This method will perform an escape operation according to the specified PropertiesKeyEscapeLevel argument value.

All other String-based escapePropertiesKey*(...) methods call this one with preconfigured level values.

This method is thread-safe.

Parameters:
text - the String to be escaped.
level - the escape level to be applied, see PropertiesKeyEscapeLevel.
Returns:
The escaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no escaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

escapePropertiesKeyMinimal

public static void escapePropertiesKeyMinimal(char[] text,
                                              int offset,
                                              int len,
                                              Writer writer)
                                       throws IOException

Perform a Java Properties Key level 1 (only basic set) escape operation on a char[] input.

Level 1 means this method will only escape the Java Properties Key basic escape set:

This method calls escapePropertiesKey(char[], int, int, java.io.Writer, PropertiesKeyEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
Throws:
IOException

escapePropertiesKey

public static void escapePropertiesKey(char[] text,
                                       int offset,
                                       int len,
                                       Writer writer)
                                throws IOException

Perform a Java Properties Key level 2 (basic set and all non-ASCII chars) escape operation on a char[] input.

Level 2 means this method will escape:

This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to \uFFFF Hexadecimal Escapes.

This method calls escapePropertiesKey(char[], int, int, java.io.Writer, PropertiesKeyEscapeLevel) with the following preconfigured values:

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
Throws:
IOException

escapePropertiesKey

public static void escapePropertiesKey(char[] text,
                                       int offset,
                                       int len,
                                       Writer writer,
                                       PropertiesKeyEscapeLevel level)
                                throws IOException

Perform a (configurable) Java Properties Key escape operation on a char[] input.

This method will perform an escape operation according to the specified PropertiesKeyEscapeLevel argument value.

All other String-based escapePropertiesKey*(...) methods call this one with preconfigured level values.

This method is thread-safe.

Parameters:
text - the char[] to be escaped.
offset - the position in text at which the escape operation should start.
len - the number of characters in text that should be escaped.
writer - the java.io.Writer to which the escaped result will be written. Nothing will be written at all to this writer if text is null.
level - the escape level to be applied, see PropertiesKeyEscapeLevel.
Throws:
IOException

unescapeProperties

public static String unescapeProperties(String text)

Perform a Java Properties (key or value) unescape operation on a String input.

No additional configuration arguments are required. Unescape operations will always perform complete Java Properties unescape of SECs and u-based escapes.

This method is thread-safe.

Parameters:
text - the String to be unescaped.
Returns:
The unescaped result String. As a memory-performance improvement, will return the exact same object as the text input argument if no unescaping modifications were required (and no additional String objects will be created during processing). Will return null if text is null.

unescapeProperties

public static void unescapeProperties(char[] text,
                                      int offset,
                                      int len,
                                      Writer writer)
                               throws IOException

Perform a Java Properties (key or value) unescape operation on a char[] input.

No additional configuration arguments are required. Unescape operations will always perform complete Java Properties unescape of SECs and u-based escapes.

This method is thread-safe.

Parameters:
text - the char[] to be unescaped.
offset - the position in text at which the unescape operation should start.
len - the number of characters in text that should be unescaped.
writer - the java.io.Writer to which the unescaped result will be written. Nothing will be written at all to this writer if text is null.
Throws:
IOException


Copyright © 2014 The UNBESCAPE team. All rights reserved.