00001 /* 00002 ***************************************************************************************** 00003 * Copyright (C) 1997-2000, International Business Machines 00004 * Corporation and others. All Rights Reserved. 00005 ***************************************************************************************** 00006 * 00007 * File BRKITER.H 00008 * 00009 * Modification History: 00010 * 00011 * Date Name Description 00012 * 02/18/97 aliu Added typedef for TextCount. Made DONE const. 00013 * 05/07/97 aliu Fixed DLL declaration. 00014 * 07/09/97 jfitz Renamed BreakIterator and interface synced with JDK 00015 * 08/11/98 helena Sync-up JDK1.2. 00016 * 01/13/2000 helena Added UErrorCode parameter to createXXXInstance methods. 00017 ***************************************************************************************** 00018 */ 00019 00020 #ifndef BRKITER_H 00021 #define BRKITER_H 00022 00023 00024 #include "unicode/unistr.h" 00025 #include "unicode/chariter.h" 00026 #include "unicode/locid.h" 00027 00028 00029 //class Locale; 00030 00166 class U_I18N_API BreakIterator { 00167 public: 00168 virtual ~BreakIterator(); 00169 00183 virtual UBool operator==(const BreakIterator&) const = 0; 00184 00189 UBool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); } 00190 00196 virtual BreakIterator* clone(void) const = 0; 00197 00203 virtual UClassID getDynamicClassID(void) const = 0; 00204 00209 virtual const CharacterIterator& getText(void) const = 0; 00210 00215 virtual CharacterIterator* createText(void) const = 0; 00216 00222 virtual void setText(const UnicodeString* it) = 0; 00223 00229 virtual void setText(const UnicodeString &text) = 0; 00230 00236 virtual void adoptText(CharacterIterator* it) = 0; 00237 00243 static const UTextOffset DONE; 00244 00249 virtual UTextOffset first(void) = 0; 00250 00255 virtual UTextOffset last(void) = 0; 00256 00263 virtual UTextOffset previous(void) = 0; 00264 00271 virtual UTextOffset next(void) = 0; 00272 00279 virtual UTextOffset current(void) const = 0; 00280 00289 virtual UTextOffset following(UTextOffset offset) = 0; 00290 00299 virtual UTextOffset preceding(UTextOffset offset) = 0; 00300 00307 virtual UBool isBoundary(UTextOffset offset) = 0; 00308 00318 virtual UTextOffset next(int32_t n) = 0; 00319 00339 static BreakIterator* createWordInstance(const Locale& where, 00340 UErrorCode& status); 00341 00362 static BreakIterator* createLineInstance(const Locale& where, 00363 UErrorCode& status); 00364 00383 static BreakIterator* createCharacterInstance(const Locale& where, 00384 UErrorCode& status); 00385 00403 static BreakIterator* createSentenceInstance(const Locale& where, 00404 UErrorCode& status); 00405 00412 static const Locale* getAvailableLocales(int32_t& count); 00413 00423 static UnicodeString& getDisplayName(const Locale& objectLocale, 00424 const Locale& displayLocale, 00425 UnicodeString& name); 00426 00435 static UnicodeString& getDisplayName(const Locale& objectLocale, 00436 UnicodeString& name); 00437 00438 00439 00440 protected: 00441 BreakIterator(); 00442 00443 private: 00448 BreakIterator& operator=(const BreakIterator& other) { return *this; } 00449 BreakIterator (const BreakIterator& other) {} 00450 }; 00451 00452 #endif // _BRKITER 00453 //eof