Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

brkiter.h

00001 /*
00002 *****************************************************************************************
00003 *   Copyright (C) 1997-2001, 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 U_NAMESPACE_BEGIN
00030 
00180 class U_COMMON_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 
00225 #ifdef ICU_ENABLE_DEPRECATED_BREAKITERATOR
00226 
00230     virtual CharacterIterator* createText(void) const = 0;
00231 
00237     virtual void  setText(const UnicodeString* it) = 0;
00238 #endif
00239 
00245     virtual void  setText(const UnicodeString &text) = 0;
00246 
00252     virtual void  adoptText(CharacterIterator* it) = 0;
00253 
00259     static const UTextOffset DONE;
00260 
00265     virtual UTextOffset first(void) = 0;
00266 
00271     virtual UTextOffset last(void) = 0;
00272 
00279     virtual UTextOffset previous(void) = 0;
00280 
00287     virtual UTextOffset next(void) = 0;
00288 
00295     virtual UTextOffset current(void) const = 0;
00296 
00305     virtual UTextOffset following(UTextOffset offset) = 0;
00306 
00315     virtual UTextOffset preceding(UTextOffset offset) = 0;
00316  
00323     virtual UBool isBoundary(UTextOffset offset) = 0;
00324 
00334     virtual UTextOffset next(int32_t n) = 0;
00335 
00355     static BreakIterator* createWordInstance(const Locale& where, 
00356                                                    UErrorCode& status);
00357 
00378     static BreakIterator* createLineInstance(const Locale& where, 
00379                                                    UErrorCode& status);
00380 
00399     static BreakIterator* createCharacterInstance(const Locale& where, 
00400                                                         UErrorCode& status);
00401 
00419     static BreakIterator* createSentenceInstance(const Locale& where, 
00420                                                        UErrorCode& status);
00421 
00439     static BreakIterator* createTitleInstance(const Locale& where, 
00440                                                        UErrorCode& status);
00441 
00448     static const Locale* getAvailableLocales(int32_t& count);
00449 
00459     static UnicodeString& getDisplayName(const Locale& objectLocale,
00460                                          const Locale& displayLocale,
00461                                          UnicodeString& name);
00462 
00471     static UnicodeString& getDisplayName(const Locale& objectLocale,
00472                                          UnicodeString& name);
00473 
00492     virtual BreakIterator *  createBufferClone(void *stackBuffer,
00493                                                int32_t &BufferSize,
00494                                                UErrorCode &status) = 0;
00495     inline UBool isBufferClone(void);
00496 
00497     
00498 protected:
00499     BreakIterator();
00500     UBool fBufferClone;
00501 private:
00506     BreakIterator& operator=(const BreakIterator&) { return *this; }
00507     BreakIterator (const BreakIterator&) {}
00508 };
00509 
00510 inline UBool BreakIterator::isBufferClone()
00511 {
00512     return fBufferClone;
00513 }
00514 
00515 U_NAMESPACE_END
00516 
00517 #endif // _BRKITER
00518 //eof
00519 

Generated on Sun Mar 3 16:06:46 2002 for ICU 2.0 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002