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