/* ***************************************************************************************** * Copyright (C) 1997-2000, International Business Machines * Corporation and others. All Rights Reserved. ***************************************************************************************** * * File BRKITER.H * * Modification History: * * Date Name Description * 02/18/97 aliu Added typedef for TextCount. Made DONE const. * 05/07/97 aliu Fixed DLL declaration. * 07/09/97 jfitz Renamed BreakIterator and interface synced with JDK * 08/11/98 helena Sync-up JDK1.2. * 01/13/2000 helena Added UErrorCode parameter to createXXXInstance methods. ***************************************************************************************** */ #ifndef BRKITER_H #define BRKITER_H #include "unicode/unistr.h" #include "unicode/chariter.h" #include "unicode/locid.h" //class Locale; class U_I18N_API BreakIterator { public: virtual ~BreakIterator(); virtual bool_t operator==(const BreakIterator&) const = 0; bool_t operator!=(const BreakIterator& rhs) const { return !operator==(rhs); } virtual BreakIterator* clone(void) const = 0; virtual UClassID getDynamicClassID(void) const = 0; virtual const CharacterIterator& getText(void) const = 0; virtual CharacterIterator* createText(void) const = 0; virtual void setText(const UnicodeString* it) = 0; virtual void adoptText(CharacterIterator* it) = 0; static const UTextOffset DONE; virtual UTextOffset first(void) = 0; virtual UTextOffset last(void) = 0; virtual UTextOffset previous(void) = 0; virtual UTextOffset next(void) = 0; virtual UTextOffset current(void) const = 0; virtual UTextOffset following(UTextOffset offset) = 0; virtual UTextOffset preceding(UTextOffset offset) = 0; virtual bool_t isBoundary(UTextOffset offset) = 0; virtual UTextOffset next(int32_t n) = 0; static BreakIterator* createWordInstance(const Locale& where, UErrorCode& status); static BreakIterator* createLineInstance(const Locale& where, UErrorCode& status); static BreakIterator* createCharacterInstance(const Locale& where, UErrorCode& status); static BreakIterator* createSentenceInstance(const Locale& where, UErrorCode& status); static const Locale* getAvailableLocales(int32_t& count); static UnicodeString& getDisplayName(const Locale& objectLocale, const Locale& displayLocale, UnicodeString& name); static UnicodeString& getDisplayName(const Locale& objectLocale, UnicodeString& name); protected: BreakIterator(); private: BreakIterator& operator=(const BreakIterator& other) { return *this; } BreakIterator (const BreakIterator& other) {} }; #endif // _BRKITER //eof