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 adoptText(CharacterIterator* it) = 0; 00230 00236 static const UTextOffset DONE; 00237 00242 virtual UTextOffset first(void) = 0; 00243 00248 virtual UTextOffset last(void) = 0; 00249 00256 virtual UTextOffset previous(void) = 0; 00257 00264 virtual UTextOffset next(void) = 0; 00265 00272 virtual UTextOffset current(void) const = 0; 00273 00282 virtual UTextOffset following(UTextOffset offset) = 0; 00283 00292 virtual UTextOffset preceding(UTextOffset offset) = 0; 00293 00300 virtual UBool isBoundary(UTextOffset offset) = 0; 00301 00311 virtual UTextOffset next(int32_t n) = 0; 00312 00332 static BreakIterator* createWordInstance(const Locale& where, 00333 UErrorCode& status); 00334 00355 static BreakIterator* createLineInstance(const Locale& where, 00356 UErrorCode& status); 00357 00376 static BreakIterator* createCharacterInstance(const Locale& where, 00377 UErrorCode& status); 00378 00396 static BreakIterator* createSentenceInstance(const Locale& where, 00397 UErrorCode& status); 00398 00405 static const Locale* getAvailableLocales(int32_t& count); 00406 00416 static UnicodeString& getDisplayName(const Locale& objectLocale, 00417 const Locale& displayLocale, 00418 UnicodeString& name); 00419 00428 static UnicodeString& getDisplayName(const Locale& objectLocale, 00429 UnicodeString& name); 00430 00431 00432 00433 protected: 00434 BreakIterator(); 00435 00436 private: 00441 BreakIterator& operator=(const BreakIterator& other) { return *this; } 00442 BreakIterator (const BreakIterator& other) {} 00443 }; 00444 00445 #endif // _BRKITER 00446 //eof