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 UNIREPL_H 00011 #define UNIREPL_H 00012 00013 #include "unicode/utypes.h" 00014 00020 U_NAMESPACE_BEGIN 00021 00022 class Replaceable; 00023 class UnicodeString; 00024 class UnicodeSet; 00025 00036 class U_I18N_API UnicodeReplacer /* not : public UObject because this is an interface/mixin class */ { 00037 00038 public: 00039 00044 virtual ~UnicodeReplacer(); 00045 00064 virtual int32_t replace(Replaceable& text, 00065 int32_t start, 00066 int32_t limit, 00067 int32_t& cursor) = 0; 00068 00083 virtual UnicodeString& toReplacerPattern(UnicodeString& result, 00084 UBool escapeUnprintable) const = 0; 00085 00092 virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const = 0; 00093 }; 00094 00095 U_NAMESPACE_END 00096 00097 #endif