]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/remtrans.h
ICU-3.13.tar.gz
[apple/icu.git] / icuSources / i18n / remtrans.h
1 /*
2 **********************************************************************
3 * Copyright (c) 2001, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 * Date Name Description
7 * 04/02/2001 aliu Creation.
8 **********************************************************************
9 */
10 #ifndef REMTRANS_H
11 #define REMTRANS_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 removes text.
23 * @author Alan Liu
24 */
25 class U_I18N_API RemoveTransliterator : public Transliterator {
26
27 public:
28
29 /**
30 * Constructs a transliterator.
31 */
32 RemoveTransliterator();
33
34 /**
35 * Destructor.
36 */
37 virtual ~RemoveTransliterator();
38
39 /**
40 * System registration hook.
41 */
42 static void registerIDs();
43
44 /**
45 * Transliterator API.
46 * @return A copy of the object.
47 */
48 Transliterator* clone(void) const;
49
50 /**
51 * Implements {@link Transliterator#handleTransliterate}.
52 * @param text the buffer holding transliterated and
53 * untransliterated text
54 * @param offset the start and limit of the text, the position
55 * of the cursor, and the start and limit of transliteration.
56 * @param incremental if true, assume more text may be coming after
57 * pos.contextLimit. Otherwise, assume the text is complete.
58 */
59 virtual void handleTransliterate(Replaceable& text, UTransPosition& offset,
60 UBool isIncremental) const;
61
62 /**
63 * ICU "poor man's RTTI", returns a UClassID for the actual class.
64 *
65 * @draft ICU 2.2
66 */
67 virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
68
69 /**
70 * ICU "poor man's RTTI", returns a UClassID for this class.
71 *
72 * @draft ICU 2.2
73 */
74 static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
75
76 private:
77
78 /**
79 * Factory method
80 */
81 static Transliterator* _create(const UnicodeString& ID, Token context);
82
83 /**
84 * The address of this static class variable serves as this class's ID
85 * for ICU "poor man's RTTI".
86 */
87 static const char fgClassID;
88 };
89
90 U_NAMESPACE_END
91
92 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
93
94 #endif