#include <usetiter.h>
Inheritance diagram for UnicodeSetIterator:
Public Member Functions | |
UnicodeSetIterator (const UnicodeSet &set) | |
Create an iterator over the given set. | |
UnicodeSetIterator () | |
Create an iterator over nothing. | |
virtual | ~UnicodeSetIterator () |
Destructor. | |
UBool | isString () const |
Returns true if the current element is a string. | |
UChar32 | getCodepoint () const |
Returns the current code point, if isString() returned false. | |
UChar32 | getCodepointEnd () const |
Returns the end of the current code point range, if isString() returned false and nextRange() was called. | |
const UnicodeString & | getString () const |
Returns the current string, if isString() returned true. | |
UBool | next () |
Returns the next element in the set, either a single code point or a string. | |
UBool | nextRange () |
Returns the next element in the set, either a code point range or a string. | |
void | reset (const UnicodeSet &set) |
Sets this iterator to visit the elements of the given set and resets it to the start of that set. | |
void | reset () |
Resets this iterator to the start of the set. | |
virtual UClassID | getDynamicClassID () const |
ICU "poor man's RTTI", returns a UClassID for the actual class. | |
Static Public Member Functions | |
static UClassID U_EXPORT2 | getStaticClassID () |
ICU "poor man's RTTI", returns a UClassID for this class. | |
Protected Types | |
IS_STRING = -1 | |
enum | { IS_STRING = -1 } |
Value of codepoint if the iterator points to a string. More... | |
Protected Member Functions | |
UnicodeSetIterator (const UnicodeSetIterator &) | |
Copy constructor. | |
UnicodeSetIterator & | operator= (const UnicodeSetIterator &) |
Assignment operator. | |
virtual void | loadRange (int32_t range) |
Load range. | |
Protected Attributes | |
UChar32 | codepoint |
Current code point, or the special value IS_STRING , if the iterator points to a string. | |
UChar32 | codepointEnd |
When iterating over ranges using nextRange() , codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING . | |
const UnicodeString * | string |
If codepoint == IS_STRING , then string points to the current string. | |
const UnicodeSet * | set |
The set. | |
int32_t | endRange |
End range. | |
int32_t | range |
Range. | |
int32_t | endElement |
End element. | |
int32_t | nextElement |
Next element. | |
int32_t | nextString |
Next string. | |
int32_t | stringCount |
String count. |
It iterates over either code points or code point ranges. After all code points or ranges have been returned, it returns the multicharacter strings of the UnicodSet, if any.
To iterate over code points, use a loop like this:
UnicodeSetIterator it(set); while (set.next()) { if (set.isString()) { processString(set.getString()); } else { processCodepoint(set.getCodepoint()); } }
To iterate over code point ranges, use a loop like this:
UnicodeSetIterator it(set); while (it.nextRange()) { if (it.isString()) { processString(it.getString()); } else { processCodepointRange(it.getCodepoint(), it.getCodepointEnd()); } }
Definition at line 57 of file usetiter.h.
anonymous enum [protected] |
Value of codepoint
if the iterator points to a string.
If codepoint == IS_STRING
, then examine string
for the current iteration result.
Definition at line 67 of file usetiter.h.
UnicodeSetIterator::UnicodeSetIterator | ( | const UnicodeSet & | set | ) |
Create an iterator over the given set.
The iterator is valid only so long as set
is valid.
set | set to iterate over |
UnicodeSetIterator::UnicodeSetIterator | ( | ) |
Create an iterator over nothing.
next()
and nextRange()
return false. This is a convenience constructor allowing the target to be set later.
virtual UnicodeSetIterator::~UnicodeSetIterator | ( | ) | [virtual] |
Destructor.
UnicodeSetIterator::UnicodeSetIterator | ( | const UnicodeSetIterator & | ) | [protected] |
Copy constructor.
Disallowed.
UChar32 UnicodeSetIterator::getCodepoint | ( | ) | const [inline] |
Returns the current code point, if isString()
returned false.
Otherwise returns an undefined result.
Definition at line 283 of file usetiter.h.
References codepoint.
UChar32 UnicodeSetIterator::getCodepointEnd | ( | ) | const [inline] |
Returns the end of the current code point range, if isString()
returned false and nextRange()
was called.
Otherwise returns an undefined result.
Definition at line 287 of file usetiter.h.
References codepointEnd.
virtual UClassID UnicodeSetIterator::getDynamicClassID | ( | ) | const [virtual] |
static UClassID U_EXPORT2 UnicodeSetIterator::getStaticClassID | ( | ) | [static] |
ICU "poor man's RTTI", returns a UClassID for this class.
const UnicodeString & UnicodeSetIterator::getString | ( | ) | const [inline] |
Returns the current string, if isString()
returned true.
Otherwise returns an undefined result.
Definition at line 291 of file usetiter.h.
References string.
UBool UnicodeSetIterator::isString | ( | ) | const [inline] |
Returns true if the current element is a string.
If so, the caller can retrieve it with getString()
. If this method returns false, the current element is a code point or code point range, depending on whether next()
or nextRange()
was called, and the caller can retrieve it with getCodepoint()
and, for a range, getCodepointEnd()
.
Definition at line 279 of file usetiter.h.
References codepoint.
virtual void UnicodeSetIterator::loadRange | ( | int32_t | range | ) | [protected, virtual] |
Load range.
UBool UnicodeSetIterator::next | ( | ) |
Returns the next element in the set, either a single code point or a string.
If there are no more elements in the set, return false. If codepoint == IS_STRING
, the value is a string in the string
field. Otherwise the value is a single code point in the codepoint
field.
The order of iteration is all code points in sorted order, followed by all strings sorted order. codepointEnd
is undefined after calling this method. string
is undefined unless codepoint == IS_STRING
. Do not mix calls to next()
and nextRange()
without calling reset()
between them. The results of doing so are undefined.
UBool UnicodeSetIterator::nextRange | ( | ) |
Returns the next element in the set, either a code point range or a string.
If there are no more elements in the set, return false. If codepoint == IS_STRING
, the value is a string in the string
field. Otherwise the value is a range of one or more code points from codepoint
to codepointeEnd
inclusive.
The order of iteration is all code points ranges in sorted order, followed by all strings sorted order. Ranges are disjoint and non-contiguous. string
is undefined unless codepoint == IS_STRING
. Do not mix calls to next()
and nextRange()
without calling reset()
between them. The results of doing so are undefined.
UnicodeSetIterator& UnicodeSetIterator::operator= | ( | const UnicodeSetIterator & | ) | [protected] |
Assignment operator.
Disallowed.
void UnicodeSetIterator::reset | ( | ) |
Resets this iterator to the start of the set.
void UnicodeSetIterator::reset | ( | const UnicodeSet & | set | ) |
Sets this iterator to visit the elements of the given set and resets it to the start of that set.
The iterator is valid only so long as set
is valid.
set | the set to iterate over. |
UChar32 UnicodeSetIterator::codepoint [protected] |
Current code point, or the special value IS_STRING
, if the iterator points to a string.
Definition at line 74 of file usetiter.h.
Referenced by getCodepoint(), and isString().
UChar32 UnicodeSetIterator::codepointEnd [protected] |
When iterating over ranges using nextRange()
, codepointEnd
contains the inclusive end of the iteration range, if codepoint != IS_STRING
.
If iterating over code points using next()
, or if codepoint == IS_STRING
, then the value of codepointEnd
is undefined.
Definition at line 85 of file usetiter.h.
Referenced by getCodepointEnd().
int32_t UnicodeSetIterator::endElement [protected] |
int32_t UnicodeSetIterator::endRange [protected] |
int32_t UnicodeSetIterator::nextElement [protected] |
int32_t UnicodeSetIterator::nextString [protected] |
int32_t UnicodeSetIterator::range [protected] |
const UnicodeSet* UnicodeSetIterator::set [protected] |
const UnicodeString* UnicodeSetIterator::string [protected] |
If codepoint == IS_STRING
, then string
points to the current string.
If codepoint != IS_STRING
, the value of string
is undefined.
Definition at line 93 of file usetiter.h.
Referenced by getString().
int32_t UnicodeSetIterator::stringCount [protected] |