00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef UNIFUNCT_H
00011 #define UNIFUNCT_H
00012
00013 #include "unicode/utypes.h"
00014
00015 U_NAMESPACE_BEGIN
00016
00017 class UnicodeMatcher;
00018 class UnicodeReplacer;
00019 class TransliterationRuleData;
00020
00026 class U_I18N_API UnicodeFunctor {
00027
00028 public:
00029
00033 virtual ~UnicodeFunctor();
00034
00040 virtual UnicodeFunctor* clone() const = 0;
00041
00051 virtual UnicodeMatcher* toMatcher() const;
00052
00062 virtual UnicodeReplacer* toReplacer() const;
00063
00075 static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; }
00076
00099 virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); };
00100
00109 virtual void setData(const TransliterationRuleData*) = 0;
00110
00111 protected:
00112
00113 UnicodeFunctor();
00114
00115 private:
00116
00121 static const char fgClassID;
00122 };
00123
00124 inline UnicodeFunctor::UnicodeFunctor() {}
00125 inline UnicodeFunctor::~UnicodeFunctor() {}
00126
00127 U_NAMESPACE_END
00128
00129 #endif