00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef STSEARCH_H
00011 #define STSEARCH_H
00012
00013 #include "unicode/utypes.h"
00014
00020 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
00021
00022 #include "unicode/tblcoll.h"
00023 #include "unicode/coleitr.h"
00024 #include "unicode/search.h"
00025
00026 U_NAMESPACE_BEGIN
00027
00132 class U_I18N_API StringSearch U_FINAL : public SearchIterator
00133 {
00134 public:
00135
00136
00137
00159 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00160 const Locale &locale,
00161 BreakIterator *breakiter,
00162 UErrorCode &status);
00163
00185 StringSearch(const UnicodeString &pattern,
00186 const UnicodeString &text,
00187 RuleBasedCollator *coll,
00188 BreakIterator *breakiter,
00189 UErrorCode &status);
00190
00216 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00217 const Locale &locale,
00218 BreakIterator *breakiter,
00219 UErrorCode &status);
00220
00246 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00247 RuleBasedCollator *coll,
00248 BreakIterator *breakiter,
00249 UErrorCode &status);
00250
00257 StringSearch(const StringSearch &that);
00258
00264 virtual ~StringSearch(void);
00265
00277 StringSearch *clone() const;
00278
00279
00280
00287 StringSearch & operator=(const StringSearch &that);
00288
00297 virtual UBool operator==(const SearchIterator &that) const;
00298
00299
00300
00314 virtual void setOffset(int32_t position, UErrorCode &status);
00315
00324 virtual int32_t getOffset(void) const;
00325
00337 virtual void setText(const UnicodeString &text, UErrorCode &status);
00338
00353 virtual void setText(CharacterIterator &text, UErrorCode &status);
00354
00364 RuleBasedCollator * getCollator() const;
00365
00374 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00375
00384 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00385
00391 const UnicodeString & getPattern() const;
00392
00393
00394
00403 virtual void reset();
00404
00413 virtual SearchIterator * safeClone(void) const;
00414
00420 virtual UClassID getDynamicClassID() const;
00421
00427 static UClassID U_EXPORT2 getStaticClassID();
00428
00429 protected:
00430
00431
00432
00455 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00456
00479 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00480
00481 private :
00482 StringSearch();
00483
00484
00485
00490 UnicodeString m_pattern_;
00495 UStringSearch *m_strsrch_;
00496
00497 };
00498
00499 U_NAMESPACE_END
00500
00501 #endif
00502
00503 #endif
00504