blob: 8276dedb5f74326a57c210ab5817870d80121961 [file] [log] [blame]
/*
* Copyright (C) 2001, International Business Machines Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
* 07/23/01 aliu Creation.
**********************************************************************
*/
#ifndef STRMATCH_H
#define STRMATCH_H
#include "unicode/unistr.h"
#include "unicode/unimatch.h"
U_NAMESPACE_BEGIN
class TransliterationRuleData;
/**
* An object that matches a string.
*/
class StringMatcher : public UnicodeMatcher {
public:
StringMatcher(const UnicodeString& string,
int32_t start,
int32_t limit,
UBool isSegment,
const TransliterationRuleData& data);
StringMatcher(const StringMatcher& o);
/**
* Destructor
*/
virtual ~StringMatcher();
/**
* Implement UnicodeMatcher
*/
virtual UnicodeMatcher* clone() const;
/**
* Implement UnicodeMatcher
*/
virtual UMatchDegree matches(const Replaceable& text,
int32_t& offset,
int32_t limit,
UBool incremental) const;
/**
* Implement UnicodeMatcher
*/
virtual UnicodeString& toPattern(UnicodeString& result,
UBool escapeUnprintable = FALSE) const;
/**
* Implement UnicodeMatcher
*/
virtual UBool matchesIndexValue(uint8_t v) const;
private:
UnicodeString pattern;
const TransliterationRuleData& data;
UBool isSegment;
};
U_NAMESPACE_END
#endif