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
00017 #if U_SHOW_CPLUSPLUS_API
00018
00024 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
00025
00026 #include "unicode/tblcoll.h"
00027 #include "unicode/coleitr.h"
00028 #include "unicode/search.h"
00029
00030 U_NAMESPACE_BEGIN
00031
00135 class U_I18N_API StringSearch U_FINAL : public SearchIterator
00136 {
00137 public:
00138
00139
00140
00162 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00163 const Locale &locale,
00164 BreakIterator *breakiter,
00165 UErrorCode &status);
00166
00188 StringSearch(const UnicodeString &pattern,
00189 const UnicodeString &text,
00190 RuleBasedCollator *coll,
00191 BreakIterator *breakiter,
00192 UErrorCode &status);
00193
00219 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00220 const Locale &locale,
00221 BreakIterator *breakiter,
00222 UErrorCode &status);
00223
00249 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00250 RuleBasedCollator *coll,
00251 BreakIterator *breakiter,
00252 UErrorCode &status);
00253
00260 StringSearch(const StringSearch &that);
00261
00267 virtual ~StringSearch(void);
00268
00280 StringSearch *clone() const;
00281
00282
00283
00290 StringSearch & operator=(const StringSearch &that);
00291
00300 virtual UBool operator==(const SearchIterator &that) const;
00301
00302
00303
00317 virtual void setOffset(int32_t position, UErrorCode &status);
00318
00327 virtual int32_t getOffset(void) const;
00328
00340 virtual void setText(const UnicodeString &text, UErrorCode &status);
00341
00356 virtual void setText(CharacterIterator &text, UErrorCode &status);
00357
00367 RuleBasedCollator * getCollator() const;
00368
00377 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00378
00387 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00388
00394 const UnicodeString & getPattern() const;
00395
00396
00397
00406 virtual void reset();
00407
00416 virtual StringSearch * safeClone() const;
00417
00423 virtual UClassID getDynamicClassID() const;
00424
00430 static UClassID U_EXPORT2 getStaticClassID();
00431
00432 protected:
00433
00434
00435
00458 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00459
00482 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00483
00484 private :
00485 StringSearch();
00486
00487
00488
00493 UnicodeString m_pattern_;
00498 UStringSearch *m_strsrch_;
00499
00500 };
00501
00502 U_NAMESPACE_END
00503
00504 #endif
00505
00506 #endif
00507
00508 #endif
00509