00001 /* 00002 ********************************************************************** 00003 * Copyright (c) 2002-2005, International Business Machines Corporation 00004 * and others. All Rights Reserved. 00005 ********************************************************************** 00006 * Date Name Description 00007 * 01/14/2002 aliu Creation. 00008 ********************************************************************** 00009 */ 00010 #ifndef UNIFUNCT_H 00011 #define UNIFUNCT_H 00012 00013 #include "unicode/utypes.h" 00014 #include "unicode/uobject.h" 00015 00021 U_NAMESPACE_BEGIN 00022 00023 class UnicodeMatcher; 00024 class UnicodeReplacer; 00025 class TransliterationRuleData; 00026 00033 class U_COMMON_API UnicodeFunctor : public UObject { 00034 00035 public: 00036 00041 virtual ~UnicodeFunctor(); 00042 00049 virtual UnicodeFunctor* clone() const = 0; 00050 00061 virtual UnicodeMatcher* toMatcher() const; 00062 00073 virtual UnicodeReplacer* toReplacer() const; 00074 00081 static UClassID U_EXPORT2 getStaticClassID(void); 00082 00098 virtual UClassID getDynamicClassID(void) const = 0; 00099 00108 virtual void setData(const TransliterationRuleData*) = 0; 00109 00110 protected: 00111 00117 /*UnicodeFunctor();*/ 00118 00119 }; 00120 00121 /*inline UnicodeFunctor::UnicodeFunctor() {}*/ 00122 00123 U_NAMESPACE_END 00124 00125 #endif