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 U_EXPORT2 getStaticClassID();
00105
00106 protected:
00107
00108
00109
00110
00111
00112
00113
00114 };
00115
00116
00117
00118 U_NAMESPACE_END
00119
00120 #endif