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
00021
00022 #include "unicode/tblcoll.h"
00023 #include "unicode/coleitr.h"
00024 #include "unicode/search.h"
00025
00026 U_NAMESPACE_BEGIN
00027
00136 class U_I18N_API StringSearch : public SearchIterator
00137 {
00138 public:
00139
00140
00141
00163 StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00164 const Locale &locale,
00165 BreakIterator *breakiter,
00166 UErrorCode &status);
00167
00189 StringSearch(const UnicodeString &pattern,
00190 const UnicodeString &text,
00191 RuleBasedCollator *coll,
00192 BreakIterator *breakiter,
00193 UErrorCode &status);
00194
00220 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00221 const Locale &locale,
00222 BreakIterator *breakiter,
00223 UErrorCode &status);
00224
00250 StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00251 RuleBasedCollator *coll,
00252 BreakIterator *breakiter,
00253 UErrorCode &status);
00254
00261 StringSearch(const StringSearch &that);
00262
00268 virtual ~StringSearch(void);
00269
00281 StringSearch *clone() const;
00282
00283
00284
00291 StringSearch & operator=(const StringSearch &that);
00292
00301 virtual UBool operator==(const SearchIterator &that) const;
00302
00303
00304
00318 virtual void setOffset(int32_t position, UErrorCode &status);
00319
00328 virtual int32_t getOffset(void) const;
00329
00341 virtual void setText(const UnicodeString &text, UErrorCode &status);
00342
00357 virtual void setText(CharacterIterator &text, UErrorCode &status);
00358
00368 RuleBasedCollator * getCollator() const;
00369
00380 void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00381
00391 void setPattern(const UnicodeString &pattern, UErrorCode &status);
00392
00398 const UnicodeString & getPattern() const;
00399
00400
00401
00410 virtual void reset();
00411
00420 virtual SearchIterator * safeClone(void) const;
00421
00427 virtual UClassID getDynamicClassID() const;
00428
00434 static UClassID U_EXPORT2 getStaticClassID();
00435
00436 protected:
00437
00438
00439
00462 virtual int32_t handleNext(int32_t position, UErrorCode &status);
00463
00486 virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00487
00488 private :
00489 StringSearch();
00490
00491
00492
00497 RuleBasedCollator m_collator_;
00502 UnicodeString m_pattern_;
00507 UStringSearch *m_strsrch_;
00508
00509 };
00510
00511 U_NAMESPACE_END
00512
00513 #endif
00514
00515 #endif
00516