1 /* 2 ********************************************************************** 3 * Copyright (C) 2001-2007, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************** 6 * Date Name Description 7 * 06/06/01 aliu Creation. 8 ********************************************************************** 9 */ 10 #ifndef UNI2NAME_H 11 #define UNI2NAME_H 12 13 #include "unicode/utypes.h" 14 15 #if !UCONFIG_NO_TRANSLITERATION 16 17 #include "unicode/translit.h" 18 19 U_NAMESPACE_BEGIN 20 21 /** 22 * A transliterator that performs character to name mapping. 23 * It generates the Perl syntax \N{name}. 24 * @author Alan Liu 25 */ 26 class UnicodeNameTransliterator : public Transliterator { 27 28 public: 29 30 /** 31 * Constructs a transliterator. 32 * @param adoptedFilter the filter to be adopted. 33 */ 34 UnicodeNameTransliterator(UnicodeFilter* adoptedFilter = 0); 35 36 /** 37 * Destructor. 38 */ 39 virtual ~UnicodeNameTransliterator(); 40 41 /** 42 * Copy constructor. 43 */ 44 UnicodeNameTransliterator(const UnicodeNameTransliterator&); 45 46 /** 47 * Transliterator API. 48 */ 49 virtual Transliterator* clone(void) const; 50 51 /** 52 * ICU "poor man's RTTI", returns a UClassID for the actual class. 53 */ 54 virtual UClassID getDynamicClassID() const; 55 56 /** 57 * ICU "poor man's RTTI", returns a UClassID for this class. 58 */ 59 U_I18N_API static UClassID U_EXPORT2 getStaticClassID(); 60 61 protected: 62 63 /** 64 * Implements {@link Transliterator#handleTransliterate}. 65 * @param text the buffer holding transliterated and 66 * untransliterated text 67 * @param offset the start and limit of the text, the position 68 * of the cursor, and the start and limit of transliteration. 69 * @param incremental if true, assume more text may be coming after 70 * pos.contextLimit. Otherwise, assume the text is complete. 71 */ 72 virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, 73 UBool isIncremental) const; 74 75 private: 76 /** 77 * Assignment operator. 78 */ 79 UnicodeNameTransliterator& operator=(const UnicodeNameTransliterator&); 80 81 }; 82 83 U_NAMESPACE_END 84 85 #endif /* #if !UCONFIG_NO_TRANSLITERATION */ 86 87 #endif 88