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