ICU 66.0.1  66.0.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 
17 #if U_SHOW_CPLUSPLUS_API
18 
24 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
25 
26 #include "unicode/tblcoll.h"
27 #include "unicode/coleitr.h"
28 #include "unicode/search.h"
29 
30 U_NAMESPACE_BEGIN
31 
136 {
137 public:
138 
139  // public constructors and destructors --------------------------------
140 
162  StringSearch(const UnicodeString &pattern, const UnicodeString &text,
163  const Locale &locale,
164  BreakIterator *breakiter,
165  UErrorCode &status);
166 
188  StringSearch(const UnicodeString &pattern,
189  const UnicodeString &text,
190  RuleBasedCollator *coll,
191  BreakIterator *breakiter,
192  UErrorCode &status);
193 
219  StringSearch(const UnicodeString &pattern, CharacterIterator &text,
220  const Locale &locale,
221  BreakIterator *breakiter,
222  UErrorCode &status);
223 
249  StringSearch(const UnicodeString &pattern, CharacterIterator &text,
250  RuleBasedCollator *coll,
251  BreakIterator *breakiter,
252  UErrorCode &status);
253 
260  StringSearch(const StringSearch &that);
261 
267  virtual ~StringSearch(void);
268 
280  StringSearch *clone() const;
281 
282  // operator overloading ---------------------------------------------
283 
290  StringSearch & operator=(const StringSearch &that);
291 
300  virtual UBool operator==(const SearchIterator &that) const;
301 
302  // public get and set methods ----------------------------------------
303 
317  virtual void setOffset(int32_t position, UErrorCode &status);
318 
327  virtual int32_t getOffset(void) const;
328 
340  virtual void setText(const UnicodeString &text, UErrorCode &status);
341 
356  virtual void setText(CharacterIterator &text, UErrorCode &status);
357 
367  RuleBasedCollator * getCollator() const;
368 
377  void setCollator(RuleBasedCollator *coll, UErrorCode &status);
378 
387  void setPattern(const UnicodeString &pattern, UErrorCode &status);
388 
394  const UnicodeString & getPattern() const;
395 
396  // public methods ----------------------------------------------------
397 
406  virtual void reset();
407 
416  virtual StringSearch * safeClone() const;
417 
423  virtual UClassID getDynamicClassID() const;
424 
430  static UClassID U_EXPORT2 getStaticClassID();
431 
432 protected:
433 
434  // protected method -------------------------------------------------
435 
458  virtual int32_t handleNext(int32_t position, UErrorCode &status);
459 
482  virtual int32_t handlePrev(int32_t position, UErrorCode &status);
483 
484 private :
485  StringSearch(); // default constructor not implemented
486 
487  // private data members ----------------------------------------------
488 
493  UnicodeString m_pattern_;
498  UStringSearch *m_strsrch_;
499 
500 };
501 
502 U_NAMESPACE_END
503 
504 #endif /* #if !UCONFIG_NO_COLLATION */
505 
506 #endif /* U_SHOW_CPLUSPLUS_API */
507 
508 #endif
509 
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:96
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:301
SearchIterator & operator=(const SearchIterator &that)
Assignment operator.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...
Definition: tblcoll.h:115
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
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:106
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.
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
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
#define U_FINAL
Defined to the C++11 "final" keyword if available.
Definition: umachine.h:140
StringSearch is a SearchIterator that provides language-sensitive text searching based on the compari...
Definition: stsearch.h:135
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:294
SearchIterator is an abstract base class that provides methods to search for a pattern within a text ...
Definition: search.h:82
struct UStringSearch UStringSearch
Data structure for searching.
Definition: usearch.h:158
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261
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:195