00001 /* 00002 ********************************************************************** 00003 * Copyright (c) 2002, 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 00015 U_NAMESPACE_BEGIN 00016 00017 class UnicodeMatcher; 00018 class UnicodeReplacer; 00019 00025 class U_I18N_API UnicodeFunctor { 00026 00027 public: 00028 00032 virtual ~UnicodeFunctor(); 00033 00039 virtual UnicodeFunctor* clone() const = 0; 00040 00050 virtual UnicodeMatcher* toMatcher() const; 00051 00061 virtual UnicodeReplacer* toReplacer() const; 00062 00074 static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; } 00075 00098 virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); }; 00099 00100 protected: 00101 00102 UnicodeFunctor(); 00103 00104 private: 00105 00110 static const char fgClassID; 00111 }; 00112 00113 inline UnicodeFunctor::UnicodeFunctor() {} 00114 inline UnicodeFunctor::~UnicodeFunctor() {} 00115 00116 U_NAMESPACE_END 00117 00118 #endif