00001 /* 00002 * Copyright (C) 1999-2005, International Business Machines Corporation and others. 00003 * All Rights Reserved. 00004 ********************************************************************** 00005 * Date Name Description 00006 * 11/17/99 aliu Creation. 00007 ********************************************************************** 00008 */ 00009 #ifndef UNIFILT_H 00010 #define UNIFILT_H 00011 00012 #include "unicode/unifunct.h" 00013 #include "unicode/unimatch.h" 00014 00020 U_NAMESPACE_BEGIN 00021 00030 #define U_ETHER ((UChar)0xFFFF) 00031 00058 class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher { 00059 00060 public: 00065 virtual ~UnicodeFilter(); 00066 00074 virtual UBool contains(UChar32 c) const = 0; 00075 00081 virtual UnicodeMatcher* toMatcher() const; 00082 00087 virtual UMatchDegree matches(const Replaceable& text, 00088 int32_t& offset, 00089 int32_t limit, 00090 UBool incremental); 00091 00096 virtual void setData(const TransliterationRuleData*); 00097 00103 virtual UClassID getDynamicClassID() const = 0; 00104 00110 static UClassID U_EXPORT2 getStaticClassID(); 00111 00112 protected: 00113 00114 /* 00115 * Since this class has pure virtual functions, 00116 * a constructor can't be used. 00117 * @stable ICU 2.0 00118 */ 00119 /* UnicodeFilter();*/ 00120 }; 00121 00122 /*inline UnicodeFilter::UnicodeFilter() {}*/ 00123 00124 U_NAMESPACE_END 00125 00126 #endif