96 enum { DONE = 0xffff };
427 inline int32_t setToStart();
454 inline int32_t setToEnd();
553 inline int32_t startIndex(
void)
const;
564 inline int32_t endIndex(
void)
const;
574 inline int32_t getIndex(
void)
const;
582 inline int32_t getLength()
const;
693 return move(0, kStart);
698 return move(0, kEnd);
Abstract class that defines an API for iteration on text objects.
virtual void getText(UnicodeString &result)=0
Copies the text under iteration into the UnicodeString referred to by "result".
virtual UChar setIndex(int32_t position)=0
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator ref...
CharacterIterator()
Empty constructor.
virtual int32_t move(int32_t delta, EOrigin origin)=0
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
CharacterIterator & operator=(const CharacterIterator &that)
Assignment operator.
virtual UChar32 first32(void)=0
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit...
int32_t pos
Base class field for the current position.
virtual UChar32 setIndex32(int32_t position)=0
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code un...
int32_t setToEnd()
Sets the iterator to the end of its iteration range, just behind the last code unit or code point.
int32_t startIndex(void) const
Returns the numeric index in the underlying text-storage object of the character returned by first().
CharacterIterator(int32_t length, int32_t position)
Constructor, just setting the length and position fields in this base class.
CharacterIterator(int32_t length)
Constructor, just setting the length field in this base class.
CharacterIterator(const CharacterIterator &that)
Copy constructor.
virtual UChar current(void) const =0
Returns the code unit the iterator currently refers to.
int32_t setToStart()
Sets the iterator to refer to the first code unit or code point in its iteration range.
virtual int32_t move32(int32_t delta, EOrigin origin)=0
Moves the current position relative to the start or end of the iteration range, or relative to the cu...
CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
Constructor, just setting the length, start, end, and position fields in this base class.
virtual UBool hasPrevious()=0
Returns FALSE if there are no more code units or code points before the current position in the itera...
virtual UChar previous(void)=0
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...
int32_t getIndex(void) const
Returns the numeric index in the underlying text-storage object of the character the iterator current...
int32_t endIndex(void) const
Returns the numeric index in the underlying text-storage object of the position immediately BEYOND th...
virtual UChar next(void)=0
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit...
virtual UChar32 last32(void)=0
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit.
virtual UChar32 next32(void)=0
Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...
virtual UChar32 previous32(void)=0
Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...
virtual UChar32 first32PostInc(void)
Sets the iterator to refer to the first code point in its iteration range, returns that code point,...
int32_t textLength
Base class text length field.
EOrigin
Origin enumeration for the move() and move32() functions.
int32_t getLength() const
Returns the length of the entire text in the underlying text-storage object.
int32_t begin
Base class field for the start of the iteration range.
virtual UChar last(void)=0
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit.
virtual ~CharacterIterator()
Destructor.
virtual CharacterIterator * clone(void) const =0
Returns a pointer to a new CharacterIterator of the same concrete class as this one,...
virtual UChar32 current32(void) const =0
Returns the code point the iterator currently refers to.
int32_t end
Base class field for the end of the iteration range.
virtual UChar first(void)=0
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit.
virtual UChar firstPostInc(void)
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit,...
Abstract class that defines an API for forward-only iteration on text objects.
virtual int32_t hashCode(void) const =0
Generates a hash code for this iterator.
ForwardCharacterIterator(const ForwardCharacterIterator &other)
Copy constructor to be overridden in the implementing class.
virtual UBool operator==(const ForwardCharacterIterator &that) const =0
Returns true when both iterators refer to the same character in the same character-storage object.
virtual ~ForwardCharacterIterator()
Destructor.
virtual UChar nextPostInc(void)=0
Gets the current code unit for returning and advances to the next code unit in the iteration range (t...
ForwardCharacterIterator & operator=(const ForwardCharacterIterator &)
Assignment operator to be overridden in the implementing class.
virtual UBool hasNext()=0
Returns FALSE if there are no more code units or code points at or after the current position in the ...
virtual UClassID getDynamicClassID(void) const =0
Returns a UClassID for this ForwardCharacterIterator ("poor man's RTTI").
virtual UChar32 next32PostInc(void)=0
Gets the current code point for returning and advances to the next code point in the iteration range ...
ForwardCharacterIterator()
Default constructor to be overridden in the implementing class.
UBool operator!=(const ForwardCharacterIterator &that) const
Returns true when the iterators refer to different text-storage objects, or to different characters i...
UObject is the common ICU "boilerplate" class.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
int8_t UBool
The ICU boolean type.
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Basic definitions for ICU, for both C and C++ APIs.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.