00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#ifndef STSEARCH_H
00011
#define STSEARCH_H
00012
00013
#include "unicode/tblcoll.h"
00014
#include "unicode/coleitr.h"
00015
#include "unicode/search.h"
00016
00017 U_NAMESPACE_BEGIN
00018
00123 class U_I18N_API StringSearch :
public SearchIterator
00124 {
00125
public:
00126
00127
00128
00150 StringSearch(
const UnicodeString &pattern,
const UnicodeString &text,
00151
const Locale &locale,
00152
BreakIterator *breakiter,
00153 UErrorCode &status);
00154
00176 StringSearch(
const UnicodeString &pattern,
00177
const UnicodeString &text,
00178
RuleBasedCollator *coll,
00179
BreakIterator *breakiter,
00180 UErrorCode &status);
00181
00207 StringSearch(
const UnicodeString &pattern,
CharacterIterator &text,
00208
const Locale &locale,
00209
BreakIterator *breakiter,
00210 UErrorCode &status);
00211
00237 StringSearch(
const UnicodeString &pattern,
CharacterIterator &text,
00238
RuleBasedCollator *coll,
00239
BreakIterator *breakiter,
00240 UErrorCode &status);
00241
00248 StringSearch(
const StringSearch &that);
00249
00255
virtual ~StringSearch(
void);
00256
00257
00258
00265 StringSearch & operator=(
const StringSearch &that);
00266
00275
virtual UBool operator==(
const SearchIterator &that)
const;
00276
00277
00278
00290
virtual void setOffset(int32_t position, UErrorCode &status);
00291
00300
virtual int32_t
getOffset(
void)
const;
00301
00313
virtual void setText(
const UnicodeString &text, UErrorCode &status);
00314
00329
virtual void setText(
CharacterIterator &text, UErrorCode &status);
00330
00340
RuleBasedCollator * getCollator()
const;
00341
00352
void setCollator(
RuleBasedCollator *coll, UErrorCode &status);
00353
00363
void setPattern(
const UnicodeString &pattern, UErrorCode &status);
00364
00370
const UnicodeString & getPattern()
const;
00371
00372
00373
00382
virtual void reset();
00383
00392
virtual SearchIterator *
safeClone(
void)
const;
00393
00394
protected:
00395
00396
00397
00419
virtual int32_t handleNext(int32_t position, UErrorCode &status);
00420
00442
virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00443
00444
private :
00445
00446
00447
00451
RuleBasedCollator m_collator_;
00455
UnicodeString m_pattern_;
00459
UnicodeString m_collation_rules_;
00463 UStringSearch *m_strsrch_;
00464 };
00465
00466 U_NAMESPACE_END
00467
00468
#endif
00469