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
00292 virtual void setOffset(int32_t position, UErrorCode &status);
00293
00302 virtual int32_t getOffset(void) const;
00303
00315 virtual void setText(const UnicodeString &text, UErrorCode &status);
00316
00331 virtual void setText(CharacterIterator &text, UErrorCode &status);
00332
00342 RuleBasedCollator * getCollator() const;
00343
00354 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00355
00365 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00366
00372 const UnicodeString & getPattern() const;
00373
00374
00375
00384 virtual void reset();
00385
00394 virtual SearchIterator * safeClone(void) const;
00395
00401 virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00402
00408 static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00409
00410 protected:
00411
00412
00413
00436 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00437
00460 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00461
00462 private :
00463
00464
00465
00470 RuleBasedCollator m_collator_;
00475 UnicodeString m_pattern_;
00480 UnicodeString m_collation_rules_;
00485 UStringSearch *m_strsrch_;
00486
00491 static const char fgClassID;
00492 };
00493
00494 U_NAMESPACE_END
00495
00496 #endif
00497