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 00180 class U_I18N_API BreakIterator { 00181 public: 00182 virtual ~BreakIterator(); 00183 00197 virtual UBool operator==(const BreakIterator&) const = 0; 00198 00203 UBool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); } 00204 00210 virtual BreakIterator* clone(void) const = 0; 00211 00217 virtual UClassID getDynamicClassID(void) const = 0; 00218 00223 virtual const CharacterIterator& getText(void) const = 0; 00224 00229 virtual CharacterIterator* createText(void) const = 0; 00230 00236 virtual void setText(const UnicodeString* it) = 0; 00237 00243 virtual void setText(const UnicodeString &text) = 0; 00244 00250 virtual void adoptText(CharacterIterator* it) = 0; 00251 00257 static const UTextOffset DONE; 00258 00263 virtual UTextOffset first(void) = 0; 00264 00269 virtual UTextOffset last(void) = 0; 00270 00277 virtual UTextOffset previous(void) = 0; 00278 00285 virtual UTextOffset next(void) = 0; 00286 00293 virtual UTextOffset current(void) const = 0; 00294 00303 virtual UTextOffset following(UTextOffset offset) = 0; 00304 00313 virtual UTextOffset preceding(UTextOffset offset) = 0; 00314 00321 virtual UBool isBoundary(UTextOffset offset) = 0; 00322 00332 virtual UTextOffset next(int32_t n) = 0; 00333 00353 static BreakIterator* createWordInstance(const Locale& where, 00354 UErrorCode& status); 00355 00376 static BreakIterator* createLineInstance(const Locale& where, 00377 UErrorCode& status); 00378 00397 static BreakIterator* createCharacterInstance(const Locale& where, 00398 UErrorCode& status); 00399 00417 static BreakIterator* createSentenceInstance(const Locale& where, 00418 UErrorCode& status); 00419 00426 static const Locale* getAvailableLocales(int32_t& count); 00427 00437 static UnicodeString& getDisplayName(const Locale& objectLocale, 00438 const Locale& displayLocale, 00439 UnicodeString& name); 00440 00449 static UnicodeString& getDisplayName(const Locale& objectLocale, 00450 UnicodeString& name); 00451 00452 00453 00454 protected: 00455 BreakIterator(); 00456 00457 private: 00462 BreakIterator& operator=(const BreakIterator&) { return *this; } 00463 BreakIterator (const BreakIterator&) {} 00464 }; 00465 00466 #endif // _BRKITER 00467 //eof