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/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     // public constructors and destructors --------------------------------
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 
00264     // operator overloading ---------------------------------------------
00265 
00272     StringSearch & operator=(const StringSearch &that);
00273 
00282     virtual UBool operator==(const SearchIterator &that) const;
00283 
00284     // public get and set methods ----------------------------------------
00285 
00299     virtual void setOffset(int32_t position, UErrorCode &status);
00300 
00309     virtual int32_t getOffset(void) const;
00310 
00322     virtual void setText(const UnicodeString &text, UErrorCode &status);
00323     
00338     virtual void setText(CharacterIterator &text, UErrorCode &status);
00339 
00349     RuleBasedCollator * getCollator() const;
00350     
00361     void setCollator(RuleBasedCollator *coll, UErrorCode &status);
00362     
00372     void setPattern(const UnicodeString &pattern, UErrorCode &status);
00373     
00379     const UnicodeString & getPattern() const;
00380 
00381     // public methods ----------------------------------------------------
00382 
00391     virtual void reset();
00392 
00401     virtual SearchIterator * safeClone(void) const;
00402     
00408     virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00409 
00415     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00416 
00417 protected:
00418 
00419     // protected method -------------------------------------------------
00420 
00443     virtual int32_t handleNext(int32_t position, UErrorCode &status);
00444 
00467     virtual int32_t handlePrev(int32_t position, UErrorCode &status);
00468     
00469 private :
00470 
00471     // private data members ----------------------------------------------
00472 
00477     RuleBasedCollator  m_collator_;
00482     UnicodeString      m_pattern_;
00487     UnicodeString      m_collation_rules_;
00492     UStringSearch     *m_strsrch_;
00493 
00498     static const char fgClassID;
00499 };
00500 
00501 U_NAMESPACE_END
00502 
00503 #endif /* #if !UCONFIG_NO_COLLATION */
00504 
00505 #endif
00506 

Generated on Wed Dec 18 16:49:47 2002 for ICU 2.4 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001