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
00120 class U_I18N_API StringSearch : public SearchIterator
00121 {
00122 public:
00123
00124
00125
00147 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00148 const Locale &locale,
00149 BreakIterator *breakiter,
00150 UErrorCode &status);
00151
00173 StringSearch(const UnicodeString &pattern,
00174 const UnicodeString &text,
00175 RuleBasedCollator *coll,
00176 BreakIterator *breakiter,
00177 UErrorCode &status);
00178
00204 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00205 const Locale &locale,
00206 BreakIterator *breakiter,
00207 UErrorCode &status);
00208
00234 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00235 RuleBasedCollator *coll,
00236 BreakIterator *breakiter,
00237 UErrorCode &status);
00238
00245 StringSearch(const StringSearch &that);
00246
00252 virtual ~StringSearch(void);
00253
00254
00255
00262 StringSearch & operator=(const StringSearch &that);
00263
00272 virtual UBool operator==(const SearchIterator &that) const;
00273
00274
00275
00287 virtual void setOffset(UTextOffset position, UErrorCode &status);
00288
00297 virtual UTextOffset getOffset(void) const;
00298
00310 virtual void setText(const UnicodeString &text, UErrorCode &status);
00311
00326 virtual void setText(CharacterIterator &text, UErrorCode &status);
00327
00337 RuleBasedCollator * getCollator() const;
00338
00349 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00350
00360 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00361
00367 const UnicodeString & getPattern() const;
00368
00369
00370
00379 virtual void reset();
00380
00389 virtual SearchIterator * safeClone(void) const;
00390
00391 protected:
00392
00393
00394
00416 virtual UTextOffset handleNext(UTextOffset position, UErrorCode &status);
00417
00439 virtual UTextOffset handlePrev(UTextOffset position, UErrorCode &status);
00440
00441 private :
00442
00443
00444
00448 RuleBasedCollator m_collator_;
00452 UnicodeString m_pattern_;
00456 UnicodeString m_collation_rules_;
00460 UStringSearch *m_strsrch_;
00461 };
00462
00463 U_NAMESPACE_END
00464
00465 #endif
00466