Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

stsearch.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 2001 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/tblcoll.h"
00014 #include "unicode/coleitr.h"
00015 #include "unicode/search.h"
00016 
00017 U_NAMESPACE_BEGIN
00018 
00123 class U_I18N_API StringSearch : public SearchIterator
00124 {
00125 public:
00126 
00127     // public constructors and destructors --------------------------------
00128 
00150     StringSearch(const UnicodeString &pattern, const UnicodeString &text,
00151                  const Locale        &locale,       
00152                        BreakIterator *breakiter,
00153                        UErrorCode    &status);
00154 
00176     StringSearch(const UnicodeString     &pattern, 
00177                  const UnicodeString     &text,
00178                        RuleBasedCollator *coll,       
00179                        BreakIterator     *breakiter,
00180                        UErrorCode        &status);
00181 
00207     StringSearch(const UnicodeString &pattern, CharacterIterator &text,
00208                  const Locale        &locale, 
00209                        BreakIterator *breakiter,
00210                        UErrorCode    &status);
00211 
00237     StringSearch(const UnicodeString     &pattern, CharacterIterator &text,
00238                        RuleBasedCollator *coll, 
00239                        BreakIterator     *breakiter,
00240                        UErrorCode        &status);
00241 
00248     StringSearch(const StringSearch &that);
00249 
00255     virtual ~StringSearch(void);
00256 
00257     // operator overloading ---------------------------------------------
00258 
00265     StringSearch & operator=(const StringSearch &that);
00266 
00275     virtual UBool operator==(const SearchIterator &that) const;
00276 
00277     // public get and set methods ----------------------------------------
00278 
00292     virtual void setOffset(int32_t position, UErrorCode &status);
00293 
00302     virtual int32_t getOffset(void) const;
00303 
00315     virtual void setText(const UnicodeString &text, UErrorCode &status);
00316     
00331     virtual void setText(CharacterIterator &text, UErrorCode &status);
00332 
00342     RuleBasedCollator * getCollator() const;
00343     
00354     void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00355     
00365     void setPattern(const UnicodeString &pattern, UErrorCode &status);
00366     
00372     const UnicodeString & getPattern() const;
00373 
00374     // public methods ----------------------------------------------------
00375 
00384     virtual void reset();
00385 
00394     virtual SearchIterator * safeClone(void) const;
00395     
00401     virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00402 
00408     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00409 
00410 protected:
00411 
00412     // protected method -------------------------------------------------
00413 
00436     virtual int32_t handleNext(int32_t position, UErrorCode &status);
00437 
00460     virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00461     
00462 private :
00463 
00464     // private data members ----------------------------------------------
00465 
00470     RuleBasedCollator  m_collator_;
00475     UnicodeString      m_pattern_;
00480     UnicodeString      m_collation_rules_;
00485     UStringSearch     *m_strsrch_;
00486 
00491     static const char fgClassID;
00492 };
00493 
00494 U_NAMESPACE_END
00495 
00496 #endif
00497 

Generated on Thu Aug 15 14:13:29 2002 for ICU 2.2 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001