Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

UnicodeToHexTransliterator Class Reference

A transliterator that converts from Unicode characters to hexadecimal Unicode escape sequences. More...

#include <unitohex.h>

Inheritance diagram for UnicodeToHexTransliterator:

Transliterator List of all members.

Public Methods

 UnicodeToHexTransliterator (const UnicodeString& pattern, UBool isUppercase, UnicodeFilter* adoptedFilter, UErrorCode& status)
 Constructs a transliterator. More...

 UnicodeToHexTransliterator (const UnicodeString& pattern, UErrorCode& status)
 Constructs an uppercase transliterator with no filter. More...

 UnicodeToHexTransliterator (UnicodeFilter* adoptedFilter = 0)
 Constructs a transliterator with the default prefix "\u" that outputs uppercase hex digits. More...

virtual ~UnicodeToHexTransliterator ()
 Destructor. More...

 UnicodeToHexTransliterator (const UnicodeToHexTransliterator&)
 Copy constructor. More...

UnicodeToHexTransliterator& operator= (const UnicodeToHexTransliterator&)
 Assignment operator. More...

virtual Transliteratorclone (void) const
 Transliterator API. More...

void applyPattern (const UnicodeString& thePattern, UErrorCode& status)
 Set the pattern recognized by this transliterator. More...

const UnicodeStringtoPattern (void) const
 Return this transliterator's pattern. More...

virtual UBool isUppercase (void) const
 Returns true if this transliterator outputs uppercase hex digits. More...

virtual void setUppercase (UBool outputUppercase)
 Sets if this transliterator outputs uppercase hex digits. More...

virtual void handleTransliterate (Replaceable& text, UTransPosition& offsets, UBool isIncremental) const
 Implements. More...


Private Types

enum  { ZERO = 0x0030, POUND = 0x0023 }

Private Attributes

UnicodeString pattern
 The pattern set by applyPattern() and returned by toPattern(). More...

UnicodeString prefix
 The string preceding the hex digits, parsed from the pattern. More...

UnicodeString suffix
 The string following the hex digits, parsed from the pattern. More...

int8_t minDigits
 The minimum number of hex digits to output, between 1 and 4, inclusive. More...

UBool uppercase
 If TRUE, output uppercase hex digits; otherwise output lowercase. More...


Static Private Attributes

const UChar HEX_DIGITS [32]
const char* _ID
 ID for this transliterator. More...


Detailed Description

A transliterator that converts from Unicode characters to hexadecimal Unicode escape sequences.

It outputs a prefix specified in the constructor and optionally converts the hex digits to uppercase.

The format of the output is set by a pattern. This pattern follows the same syntax as HexToUnicodeTransliterator, except it does not allow multiple specifications. The pattern sets the prefix string, suffix string, and minimum and maximum digit count. There are no setters or getters for these attributes; they are set only through the pattern.

The setUppercase() and isUppercase() methods control whether 'a' through 'f' or 'A' through 'F' are output as hex digits. This is not controlled through the pattern; only through the methods. The default is uppercase.

Author(s):
Alan Liu

Definition at line 37 of file unitohex.h.


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
ZERO  
POUND  

Definition at line 42 of file unitohex.h.


Constructor & Destructor Documentation

UnicodeToHexTransliterator::UnicodeToHexTransliterator ( const UnicodeString & pattern,
UBool isUppercase,
UnicodeFilter * adoptedFilter,
UErrorCode & status )
 

Constructs a transliterator.

Parameters:
pattern   The pattern for this transliterator. See applyPattern() for pattern syntax.
uppercase   if true, the four hex digits will be converted to uppercase; otherwise they will be lowercase.
adoptedFilter   the filter for this transliterator, or NULL if none. Adopted by this transliterator.
status   Error code indicating success or failure to parse pattern.
Stable:

UnicodeToHexTransliterator::UnicodeToHexTransliterator ( const UnicodeString & pattern,
UErrorCode & status )
 

Constructs an uppercase transliterator with no filter.

Parameters:
pattern   The pattern for this transliterator. See applyPattern() for pattern syntax.
status   Error code indicating success or failure to parse pattern.

UnicodeToHexTransliterator::UnicodeToHexTransliterator ( UnicodeFilter * adoptedFilter = 0 )
 

Constructs a transliterator with the default prefix "\u" that outputs uppercase hex digits.

Stable:

UnicodeToHexTransliterator::~UnicodeToHexTransliterator ( ) [inline, virtual]
 

Destructor.

Stable:

Definition at line 197 of file unitohex.h.

UnicodeToHexTransliterator::UnicodeToHexTransliterator ( const UnicodeToHexTransliterator & )
 

Copy constructor.

Stable:


Member Function Documentation

void UnicodeToHexTransliterator::applyPattern ( const UnicodeString & thePattern,
UErrorCode & status )
 

Set the pattern recognized by this transliterator.

The pattern must contain zero or more prefix characters, one or more digit characters, and zero or more suffix characters. The digit characters indicates optional digits ('#') followed by required digits ('0'). The total number of digits cannot exceed 4, and must be at least 1 required digit. Use a backslash ('\') to escape any of the special characters. An empty pattern is not allowed.

Example: "U+0000" specifies a prefix of "U+", exactly four digits, and no suffix. "<###0>" has a prefix of "<", between one and four digits, and a suffix of ">".

 pattern := prefix-char* digit-spec suffix-char*
 digit-spec := '#'* '0'+
 prefix-char := [^special-char] | '\' special-char
 suffix-char := [^special-char] | '\' special-char
 special-char := ';' | '0' | '#' | '\'
 

Limitations: There is no way to set the uppercase attribute in the pattern. (applyPattern() does not alter the uppercase attribute.)

Stable:

Transliterator * UnicodeToHexTransliterator::clone ( void ) const [virtual]
 

Transliterator API.

Stable:

Reimplemented from Transliterator.

void UnicodeToHexTransliterator::handleTransliterate ( Replaceable & text,
UTransPosition & offsets,
UBool isIncremental ) const [virtual]
 

Implements.

Transliterator#handleTransliterate.

Draft:

Reimplemented from Transliterator.

UBool UnicodeToHexTransliterator::isUppercase ( void ) const [virtual]
 

Returns true if this transliterator outputs uppercase hex digits.

Stable:

UnicodeToHexTransliterator & UnicodeToHexTransliterator::operator= ( const UnicodeToHexTransliterator & )
 

Assignment operator.

Stable:

void UnicodeToHexTransliterator::setUppercase ( UBool outputUppercase ) [virtual]
 

Sets if this transliterator outputs uppercase hex digits.

Stable:

const UnicodeString & UnicodeToHexTransliterator::toPattern ( void ) const
 

Return this transliterator's pattern.

Stable:


Member Data Documentation

const UChar UnicodeToHexTransliterator::HEX_DIGITS[32] [static, private]
 

Definition at line 48 of file unitohex.h.

const char * UnicodeToHexTransliterator::_ID [static, private]
 

ID for this transliterator.

Definition at line 53 of file unitohex.h.

int8_t UnicodeToHexTransliterator::minDigits [private]
 

The minimum number of hex digits to output, between 1 and 4, inclusive.

Parsed from the pattern.

Definition at line 74 of file unitohex.h.

UnicodeString UnicodeToHexTransliterator::pattern [private]
 

The pattern set by applyPattern() and returned by toPattern().

Definition at line 58 of file unitohex.h.

UnicodeString UnicodeToHexTransliterator::prefix [private]
 

The string preceding the hex digits, parsed from the pattern.

Definition at line 63 of file unitohex.h.

UnicodeString UnicodeToHexTransliterator::suffix [private]
 

The string following the hex digits, parsed from the pattern.

Definition at line 68 of file unitohex.h.

UBool UnicodeToHexTransliterator::uppercase [private]
 

If TRUE, output uppercase hex digits; otherwise output lowercase.

Set by setUppercase() and returned by isUppercase().

Definition at line 80 of file unitohex.h.


The documentation for this class was generated from the following file:
Generated at Thu Mar 22 16:13:33 2001 for ICU 1.8 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000