Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

stsearch.h

00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 2001-2003 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;
00409 
00415     static inline UClassID getStaticClassID();
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     StringSearch(); // default constructor not implemented
00471 
00472     // private data members ----------------------------------------------
00473 
00478     RuleBasedCollator  m_collator_;
00483     UnicodeString      m_pattern_;
00488     UnicodeString      m_collation_rules_;
00493     UStringSearch     *m_strsrch_;
00494 
00499     static const char fgClassID;
00500 };
00501 
00502 inline UClassID
00503 StringSearch::getStaticClassID()
00504 { return (UClassID)&fgClassID; }
00505 
00506 inline UClassID
00507 StringSearch::getDynamicClassID() const
00508 { return StringSearch::getStaticClassID(); }
00509 
00510 U_NAMESPACE_END
00511 
00512 #endif /* #if !UCONFIG_NO_COLLATION */
00513 
00514 #endif
00515 

Generated on Wed Sep 3 17:47:09 2003 for ICU 2.6 by doxygen 1.3.2