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