00001 /* 00002 * Copyright © {1999}, International Business Machines Corporation and others. All Rights Reserved. 00003 ********************************************************************** 00004 * Date Name Description 00005 * 11/17/99 aliu Creation. 00006 ********************************************************************** 00007 */ 00008 #ifndef HEXTOUNI_H 00009 #define HEXTOUNI_H 00010 00011 #include "unicode/translit.h" 00012 00028 class U_I18N_API HexToUnicodeTransliterator : public Transliterator { 00029 00033 static const char* _ID; 00034 00038 static const UnicodeString DEFAULT_PATTERN; 00039 00040 // Character constants defined here to avoid ASCII dependency 00041 enum { 00042 SEMICOLON = 0x003B, // ';' 00043 ZERO = 0x0030, // '0' 00044 POUND = 0x0023, // '#' 00045 BACKSLASH = 0x005C // '\\' 00046 }; 00047 00051 UnicodeString pattern; 00052 00057 UnicodeString affixes; 00058 00062 int32_t affixCount; 00063 00064 public: 00065 00072 HexToUnicodeTransliterator(UnicodeFilter* adoptedFilter = 0); 00073 00078 HexToUnicodeTransliterator(const UnicodeString& pattern, 00079 UErrorCode& status); 00080 00086 HexToUnicodeTransliterator(const UnicodeString& pattern, 00087 UnicodeFilter* adoptedFilter, 00088 UErrorCode& status); 00089 00094 virtual ~HexToUnicodeTransliterator(); 00095 00100 HexToUnicodeTransliterator(const HexToUnicodeTransliterator&); 00101 00106 HexToUnicodeTransliterator& operator=(const HexToUnicodeTransliterator&); 00107 00112 Transliterator* clone(void) const; 00113 00140 void applyPattern(const UnicodeString& thePattern, UErrorCode& status); 00141 00145 const UnicodeString& toPattern(void) const; 00146 00151 virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, 00152 UBool isIncremental) const; 00153 }; 00154 00155 inline HexToUnicodeTransliterator::~HexToUnicodeTransliterator() {} 00156 00157 #endif