00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef BRKITER_H
00021 #define BRKITER_H
00022
00023 #include "unicode/utypes.h"
00024 #include "unicode/uobject.h"
00025 #include "unicode/unistr.h"
00026 #include "unicode/chariter.h"
00027 #include "unicode/locid.h"
00028 #include "unicode/ubrk.h"
00029
00030
00031 U_NAMESPACE_BEGIN
00032
00182 class U_COMMON_API BreakIterator : public UObject {
00183 public:
00184 virtual ~BreakIterator();
00185
00199 virtual UBool operator==(const BreakIterator&) const = 0;
00200
00207 UBool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); }
00208
00214 virtual BreakIterator* clone(void) const = 0;
00215
00221 virtual UClassID getDynamicClassID(void) const = 0;
00222
00229 virtual const CharacterIterator& getText(void) const = 0;
00230
00237 virtual void setText(const UnicodeString &text) = 0;
00238
00245 virtual void adoptText(CharacterIterator* it) = 0;
00246
00252 static const int32_t DONE;
00253
00258 virtual int32_t first(void) = 0;
00259
00264 virtual int32_t last(void) = 0;
00265
00272 virtual int32_t previous(void) = 0;
00273
00280 virtual int32_t next(void) = 0;
00281
00287 virtual int32_t current(void) const = 0;
00288
00297 virtual int32_t following(int32_t offset) = 0;
00298
00307 virtual int32_t preceding(int32_t offset) = 0;
00308
00317 virtual UBool isBoundary(int32_t offset) = 0;
00318
00328 virtual int32_t next(int32_t n) = 0;
00329
00349 static BreakIterator* createWordInstance(const Locale& where,
00350 UErrorCode& status);
00351
00373 static BreakIterator* createLineInstance(const Locale& where,
00374 UErrorCode& status);
00375
00395 static BreakIterator* createCharacterInstance(const Locale& where,
00396 UErrorCode& status);
00397
00416 static BreakIterator* createSentenceInstance(const Locale& where,
00417 UErrorCode& status);
00418
00437 static BreakIterator* createTitleInstance(const Locale& where,
00438 UErrorCode& status);
00439
00446 static const Locale* getAvailableLocales(int32_t& count);
00447
00457 static UnicodeString& getDisplayName(const Locale& objectLocale,
00458 const Locale& displayLocale,
00459 UnicodeString& name);
00460
00469 static UnicodeString& getDisplayName(const Locale& objectLocale,
00470 UnicodeString& name);
00471
00489 virtual BreakIterator * createBufferClone(void *stackBuffer,
00490 int32_t &BufferSize,
00491 UErrorCode &status) = 0;
00492
00499 inline UBool isBufferClone(void);
00500
00501
00502 protected:
00503 BreakIterator();
00504 UBool fBufferClone;
00505 BreakIterator (const BreakIterator &other) : UObject(other), fBufferClone(FALSE) {}
00506 private:
00511 BreakIterator& operator=(const BreakIterator&) { return *this; }
00512 };
00513
00514 inline UBool BreakIterator::isBufferClone()
00515 {
00516 return fBufferClone;
00517 }
00518
00519 U_NAMESPACE_END
00520
00521 #endif // _BRKITER
00522
00523