stsearch.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 2001-2006 IBM and others. All rights reserved.
00004 **********************************************************************
00005 *   Date        Name        Description
00006 *  03/22/2000   helena      Creation.
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     // public constructors and destructors --------------------------------
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     // operator overloading ---------------------------------------------
00284 
00291     StringSearch & operator=(const StringSearch &that);
00292 
00301     virtual UBool operator==(const SearchIterator &that) const;
00302 
00303     // public get and set methods ----------------------------------------
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     // public methods ----------------------------------------------------
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     // protected method -------------------------------------------------
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(); // default constructor not implemented
00490 
00491     // private data members ----------------------------------------------
00492 
00497     RuleBasedCollator  m_collator_;
00502     UnicodeString      m_pattern_;
00507     UStringSearch     *m_strsrch_;
00508 
00509 };
00510 
00511 U_NAMESPACE_END
00512 
00513 #endif /* #if !UCONFIG_NO_COLLATION */
00514 
00515 #endif
00516 

Generated on Mon Aug 13 07:17:24 2007 for ICU 3.6 by  doxygen 1.5.2