ICU 59.1  59.1
stsearch.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 * Copyright (C) 2001-2014 IBM and others. All rights reserved.
6 **********************************************************************
7 * Date Name Description
8 * 03/22/2000 helena Creation.
9 **********************************************************************
10 */
11 
12 #ifndef STSEARCH_H
13 #define STSEARCH_H
14 
15 #include "unicode/utypes.h"
16 
22 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
23 
24 #include "unicode/tblcoll.h"
25 #include "unicode/coleitr.h"
26 #include "unicode/search.h"
27 
29 
134 class U_I18N_API StringSearch U_FINAL : public SearchIterator
135 {
136 public:
137 
138  // public constructors and destructors --------------------------------
139 
161  StringSearch(const UnicodeString &pattern, const UnicodeString &text,
162  const Locale &locale,
163  BreakIterator *breakiter,
164  UErrorCode &status);
165 
187  StringSearch(const UnicodeString &pattern,
188  const UnicodeString &text,
189  RuleBasedCollator *coll,
190  BreakIterator *breakiter,
191  UErrorCode &status);
192 
218  StringSearch(const UnicodeString &pattern, CharacterIterator &text,
219  const Locale &locale,
220  BreakIterator *breakiter,
221  UErrorCode &status);
222 
248  StringSearch(const UnicodeString &pattern, CharacterIterator &text,
249  RuleBasedCollator *coll,
250  BreakIterator *breakiter,
251  UErrorCode &status);
252 
259  StringSearch(const StringSearch &that);
260 
266  virtual ~StringSearch(void);
267 
279  StringSearch *clone() const;
280 
281  // operator overloading ---------------------------------------------
282 
289  StringSearch & operator=(const StringSearch &that);
290 
299  virtual UBool operator==(const SearchIterator &that) const;
300 
301  // public get and set methods ----------------------------------------
302 
316  virtual void setOffset(int32_t position, UErrorCode &status);
317 
326  virtual int32_t getOffset(void) const;
327 
339  virtual void setText(const UnicodeString &text, UErrorCode &status);
340 
355  virtual void setText(CharacterIterator &text, UErrorCode &status);
356 
366  RuleBasedCollator * getCollator() const;
367 
376  void setCollator(RuleBasedCollator *coll, UErrorCode &status);
377 
386  void setPattern(const UnicodeString &pattern, UErrorCode &status);
387 
393  const UnicodeString & getPattern() const;
394 
395  // public methods ----------------------------------------------------
396 
405  virtual void reset();
406 
415  virtual SearchIterator * safeClone(void) const;
416 
422  virtual UClassID getDynamicClassID() const;
423 
429  static UClassID U_EXPORT2 getStaticClassID();
430 
431 protected:
432 
433  // protected method -------------------------------------------------
434 
457  virtual int32_t handleNext(int32_t position, UErrorCode &status);
458 
481  virtual int32_t handlePrev(int32_t position, UErrorCode &status);
482 
483 private :
484  StringSearch(); // default constructor not implemented
485 
486  // private data members ----------------------------------------------
487 
492  UnicodeString m_pattern_;
497  UStringSearch *m_strsrch_;
498 
499 };
500 
502 
503 #endif /* #if !UCONFIG_NO_COLLATION */
504 
505 #endif
506 
virtual int32_t getOffset(void) const =0
Return the current index in the text being searched.
C++ API: SearchIterator object.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:93
virtual UBool operator==(const SearchIterator &that) const
Equality operator.
C++ API: The RuleBasedCollator class implements the Collator abstract base class. ...
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:360
SearchIterator & operator=(const SearchIterator &that)
Assignment operator.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:131
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...
Definition: tblcoll.h:113
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:358
virtual int32_t handleNext(int32_t position, UErrorCode &status)=0
Abstract method which subclasses override to provide the mechanism for finding the next match in the ...
virtual void setText(const UnicodeString &text, UErrorCode &status)
Set the string text to be searched.
virtual void reset()
Resets the iteration.
The BreakIterator class implements methods for finding the location of boundaries in text...
Definition: brkiter.h:102
virtual UClassID getDynamicClassID() const
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
virtual void setOffset(int32_t position, UErrorCode &status)=0
Sets the index to point to the given position, and clears any state that's affected.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:132
virtual int32_t handlePrev(int32_t position, UErrorCode &status)=0
Abstract method which subclasses override to provide the mechanism for finding the previous match in ...
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:396
StringSearch is a SearchIterator that provides language-sensitive text searching based on the compari...
Definition: stsearch.h:134
Basic definitions for ICU, for both C and C++ APIs.
C++ API: Collation Element Iterator.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:296
SearchIterator is an abstract base class that provides methods to search for a pattern within a text ...
Definition: search.h:81
struct UStringSearch UStringSearch
Data structure for searching.
Definition: usearch.h:158
int8_t UBool
The ICU boolean type.
Definition: umachine.h:236
virtual SearchIterator * safeClone(void) const =0
Returns a copy of SearchIterator with the same behavior, and iterating over the same text...
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:188