00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef STSEARCH_H
00013 #define STSEARCH_H
00014
00015 #include "unicode/utypes.h"
00016
00022 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
00023
00024 #include "unicode/tblcoll.h"
00025 #include "unicode/coleitr.h"
00026 #include "unicode/search.h"
00027
00028 U_NAMESPACE_BEGIN
00029
00134 class U_I18N_API StringSearch U_FINAL : public SearchIterator
00135 {
00136 public:
00137
00138
00139
00161 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00162 const Locale &locale,
00163 BreakIterator *breakiter,
00164 UErrorCode &status);
00165
00187 StringSearch(const UnicodeString &pattern,
00188 const UnicodeString &text,
00189 RuleBasedCollator *coll,
00190 BreakIterator *breakiter,
00191 UErrorCode &status);
00192
00218 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00219 const Locale &locale,
00220 BreakIterator *breakiter,
00221 UErrorCode &status);
00222
00248 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00249 RuleBasedCollator *coll,
00250 BreakIterator *breakiter,
00251 UErrorCode &status);
00252
00259 StringSearch(const StringSearch &that);
00260
00266 virtual ~StringSearch(void);
00267
00279 StringSearch *clone() const;
00280
00281
00282
00289 StringSearch & operator=(const StringSearch &that);
00290
00299 virtual UBool operator==(const SearchIterator &that) const;
00300
00301
00302
00316 virtual void setOffset(int32_t position, UErrorCode &status);
00317
00326 virtual int32_t getOffset(void) const;
00327
00339 virtual void setText(const UnicodeString &text, UErrorCode &status);
00340
00355 virtual void setText(CharacterIterator &text, UErrorCode &status);
00356
00366 RuleBasedCollator * getCollator() const;
00367
00376 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00377
00386 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00387
00393 const UnicodeString & getPattern() const;
00394
00395
00396
00405 virtual void reset();
00406
00415 virtual SearchIterator * safeClone(void) const;
00416
00422 virtual UClassID getDynamicClassID() const;
00423
00429 static UClassID U_EXPORT2 getStaticClassID();
00430
00431 protected:
00432
00433
00434
00457 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00458
00481 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00482
00483 private :
00484 StringSearch();
00485
00486
00487
00492 UnicodeString m_pattern_;
00497 UStringSearch *m_strsrch_;
00498
00499 };
00500
00501 U_NAMESPACE_END
00502
00503 #endif
00504
00505 #endif
00506