1/*
2**********************************************************************
3*   Copyright (c) 2001-2007, 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
19U_NAMESPACE_BEGIN
20
21/**
22 * A transliterator that removes text.
23 * @author Alan Liu
24 */
25class RemoveTransliterator : public Transliterator {
26
27public:
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    virtual 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    virtual UClassID getDynamicClassID() const;
66
67    /**
68     * ICU "poor man's RTTI", returns a UClassID for this class.
69     */
70    U_I18N_API static UClassID U_EXPORT2 getStaticClassID();
71
72};
73
74U_NAMESPACE_END
75
76#endif /* #if !UCONFIG_NO_TRANSLITERATION */
77
78#endif
79