00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef STSEARCH_H
00011 #define STSEARCH_H
00012
00013 #include "unicode/utypes.h"
00014
00015 #if !UCONFIG_NO_COLLATION
00016
00017 #include "unicode/tblcoll.h"
00018 #include "unicode/coleitr.h"
00019 #include "unicode/search.h"
00020
00021 U_NAMESPACE_BEGIN
00022
00130 class U_I18N_API StringSearch : public SearchIterator
00131 {
00132 public:
00133
00134
00135
00157 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00158 const Locale &locale,
00159 BreakIterator *breakiter,
00160 UErrorCode &status);
00161
00183 StringSearch(const UnicodeString &pattern,
00184 const UnicodeString &text,
00185 RuleBasedCollator *coll,
00186 BreakIterator *breakiter,
00187 UErrorCode &status);
00188
00214 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00215 const Locale &locale,
00216 BreakIterator *breakiter,
00217 UErrorCode &status);
00218
00244 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00245 RuleBasedCollator *coll,
00246 BreakIterator *breakiter,
00247 UErrorCode &status);
00248
00255 StringSearch(const StringSearch &that);
00256
00262 virtual ~StringSearch(void);
00263
00275 StringSearch *clone() const;
00276
00277
00278
00285 StringSearch & operator=(const StringSearch &that);
00286
00295 virtual UBool operator==(const SearchIterator &that) const;
00296
00297
00298
00312 virtual void setOffset(int32_t position, UErrorCode &status);
00313
00322 virtual int32_t getOffset(void) const;
00323
00335 virtual void setText(const UnicodeString &text, UErrorCode &status);
00336
00351 virtual void setText(CharacterIterator &text, UErrorCode &status);
00352
00362 RuleBasedCollator * getCollator() const;
00363
00374 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00375
00385 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00386
00392 const UnicodeString & getPattern() const;
00393
00394
00395
00404 virtual void reset();
00405
00414 virtual SearchIterator * safeClone(void) const;
00415
00421 virtual UClassID getDynamicClassID() const;
00422
00428 static UClassID getStaticClassID();
00429
00430 protected:
00431
00432
00433
00456 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00457
00480 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00481
00482 private :
00483 StringSearch();
00484
00485
00486
00491 RuleBasedCollator m_collator_;
00496 UnicodeString m_pattern_;
00501 UnicodeString m_collation_rules_;
00506 UStringSearch *m_strsrch_;
00507
00508 };
00509
00510 U_NAMESPACE_END
00511
00512 #endif
00513
00514 #endif
00515