Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

UnicodeSetIterator Class Reference

UnicodeSetIterator iterates over the contents of a UnicodeSet. More...

#include <usetiter.h>

Inheritance diagram for UnicodeSetIterator::

UObject UMemory List of all members.

Public Methods

 UnicodeSetIterator (const UnicodeSet &set)
 Create an iterator over the given set. More...

 UnicodeSetIterator ()
 Create an iterator over nothing. More...

virtual ~UnicodeSetIterator ()
 Destructor. More...

UBool isString () const
 Returns true if the current element is a string. More...

UChar32 getCodepoint () const
 Returns the current code point, if isString() returned false. More...

UChar32 getCodepointEnd () const
 Returns the end of the current code point range, if isString() returned false and nextRange() was called. More...

const UnicodeStringgetString () const
 Returns the current string, if isString() returned true. More...

UBool next ()
 Returns the next element in the set, either a single code point or a string. More...

UBool nextRange ()
 Returns the next element in the set, either a code point range or a string. More...

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. More...

void reset ()
 Resets this iterator to the start of the set. More...

virtual UClassID getDynamicClassID () const
 ICU "poor man's RTTI", returns a UClassID for the actual class. More...


Static Public Methods

UClassID getStaticClassID ()
 ICU "poor man's RTTI", returns a UClassID for this class. More...


Protected Types

enum  { IS_STRING = -1 }
 Value of codepoint if the iterator points to a string. More...


Protected Methods

 UnicodeSetIterator (const UnicodeSetIterator &)
 Copy constructor. More...

UnicodeSetIterator & operator= (const UnicodeSetIterator &)
 Assignment operator. More...

virtual void loadRange (int32_t range)
 Load range. More...


Protected Attributes

UChar32 codepoint
 Current code point, or the special value IS_STRING, if the iterator points to a string. More...

UChar32 codepointEnd
 When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING. More...

const UnicodeStringstring
 If codepoint == IS_STRING, then string points to the current string. More...

const UnicodeSetset
 The set. More...

int32_t endRange
 End range. More...

int32_t range
 Range. More...

int32_t endElement
 End element. More...

int32_t nextElement
 Next element. More...

int32_t nextString
 Next string. More...

int32_t stringCount
 String count. More...


Detailed Description

UnicodeSetIterator iterates over the contents of a UnicodeSet.

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());
   }
 }
 
Author:
M. Davis
Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 53 of file usetiter.h.


Member Enumeration Documentation

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.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.
Enumeration values:
IS_STRING 

Definition at line 63 of file usetiter.h.


Constructor & Destructor Documentation

UnicodeSetIterator::UnicodeSetIterator const UnicodeSet   set
 

Create an iterator over the given set.

The iterator is valid only so long as set is valid.

Parameters:
set  set to iterate over
Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

UnicodeSetIterator::UnicodeSetIterator  
 

Create an iterator over nothing.

next() and nextRange() return false. This is a convenience constructor allowing the target to be set later.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

virtual UnicodeSetIterator::~UnicodeSetIterator   [virtual]
 

Destructor.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

UnicodeSetIterator::UnicodeSetIterator const UnicodeSetIterator &    [protected]
 

Copy constructor.

Disallowed.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.


Member Function Documentation

UChar32 UnicodeSetIterator::getCodepoint   const [inline]
 

Returns the current code point, if isString() returned false.

Otherwise returns an undefined result.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 279 of file usetiter.h.

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.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 283 of file usetiter.h.

virtual UClassID UnicodeSetIterator::getDynamicClassID void    const [virtual]
 

ICU "poor man's RTTI", returns a UClassID for the actual class.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Reimplemented from UObject.

UClassID UnicodeSetIterator::getStaticClassID void    [static]
 

ICU "poor man's RTTI", returns a UClassID for this class.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

const UnicodeString & UnicodeSetIterator::getString void    const [inline]
 

Returns the current string, if isString() returned true.

Otherwise returns an undefined result.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 287 of file usetiter.h.

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().

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 275 of file usetiter.h.

virtual void UnicodeSetIterator::loadRange int32_t    range [protected, virtual]
 

Load range.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

UBool UnicodeSetIterator::next void   
 

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.

Returns:
true if there was another element in the set and this object contains the element.
Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

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.

Returns:
true if there was another element in the set and this object contains the element.
Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

UnicodeSetIterator& UnicodeSetIterator::operator= const UnicodeSetIterator &    [protected]
 

Assignment operator.

Disallowed.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

void UnicodeSetIterator::reset void   
 

Resets this iterator to the start of the set.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

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.

Parameters:
set  the set to iterate over.
Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.


Member Data Documentation

UChar32 UnicodeSetIterator::codepoint [protected]
 

Current code point, or the special value IS_STRING, if the iterator points to a string.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 70 of file usetiter.h.

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.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 81 of file usetiter.h.

int32_t UnicodeSetIterator::endElement [protected]
 

End element.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 243 of file usetiter.h.

int32_t UnicodeSetIterator::endRange [protected]
 

End range.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 235 of file usetiter.h.

int32_t UnicodeSetIterator::nextElement [protected]
 

Next element.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 247 of file usetiter.h.

int32_t UnicodeSetIterator::nextString [protected]
 

Next string.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 252 of file usetiter.h.

int32_t UnicodeSetIterator::range [protected]
 

Range.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 239 of file usetiter.h.

const UnicodeSet* UnicodeSetIterator::set [protected]
 

The set.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 231 of file usetiter.h.

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.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 89 of file usetiter.h.

int32_t UnicodeSetIterator::stringCount [protected]
 

String count.

Draft:
This API has been introduced in ICU 2.4. It is still in draft state and may be modified in a future release.

Definition at line 256 of file usetiter.h.


The documentation for this class was generated from the following file:
Generated on Mon Nov 24 14:37:04 2003 for ICU 2.8 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001