00001
00002
00003
00004
00005
00006
00007
00008
00009
#ifndef UNIFILT_H
00010
#define UNIFILT_H
00011
00012
#include "unicode/unifunct.h"
00013
#include "unicode/unimatch.h"
00014
00015
U_NAMESPACE_BEGIN
00016
00025
#define U_ETHER ((UChar)0xFFFF)
00026
00052
class U_COMMON_API UnicodeFilter :
public UnicodeFunctor,
public UnicodeMatcher {
00053
00054
public:
00059
virtual ~UnicodeFilter();
00060
00068
virtual UBool contains(UChar32 c)
const = 0;
00069
00075
virtual UnicodeMatcher*
toMatcher() const;
00076
00081 virtual UMatchDegree matches(const
Replaceable& text,
00082 int32_t& offset,
00083 int32_t limit,
00084 UBool incremental);
00085
00090 virtual
void setData(const TransliterationRuleData*);
00091
00097 virtual UClassID getDynamicClassID() const = 0;
00098
00104 static UClassID getStaticClassID();
00105
00106 protected:
00107
00108
00109
00110
00111
00112
00113
00114 };
00115
00116
00117
00118 U_NAMESPACE_END
00119
00120 #endif