00001
00002
00003
00004
00005
00006
00007
00008
#ifndef UNIMATCH_H
00009
#define UNIMATCH_H
00010
00011
#include "unicode/utypes.h"
00012
00013
U_NAMESPACE_BEGIN
00014
00015
class Replaceable;
00016
class UnicodeString;
00017
class UnicodeSet;
00018
00024
enum UMatchDegree {
00032 U_MISMATCH,
00033
00044 U_PARTIAL_MATCH,
00045
00054 U_MATCH
00055 };
00056
00062 class U_COMMON_API UnicodeMatcher {
00063
00064
public:
00069
virtual ~UnicodeMatcher();
00070
00117
virtual UMatchDegree matches(
const Replaceable& text,
00118 int32_t& offset,
00119 int32_t limit,
00120
UBool incremental) = 0;
00121
00134
virtual UnicodeString& toPattern(
UnicodeString& result,
00135
UBool escapeUnprintable =
FALSE)
const = 0;
00136
00144
virtual UBool matchesIndexValue(uint8_t v)
const = 0;
00145
00152
virtual void addMatchSetTo(
UnicodeSet& toUnionTo)
const = 0;
00153 };
00154
00155
U_NAMESPACE_END
00156
00157
#endif