public class

UnicodeSetIterator

extends Object
java.lang.Object
   ↳ sun.text.normalizer.UnicodeSetIterator

Class Overview

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.codepoint != UnicodeSetIterator::IS_STRING) {
     processCodepoint(set.codepoint);
   } else {
     processString(set.string);
   }
 }
 

To iterate over code point ranges, use a loop like this:

 UnicodeSetIterator it(set);
 while (set.nextRange()) {
   if (set.codepoint != UnicodeSetIterator::IS_STRING) {
     processCodepointRange(set.codepoint, set.codepointEnd);
   } else {
     processString(set.string);
   }
 }
 

Summary

Fields
public static int IS_STRING Value of codepoint if the iterator points to a string.
public int codepoint Current code point, or the special value IS_STRING, if the iterator points to a string.
public int codepointEnd When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING.
protected int endElement
protected int nextElement
public String string If codepoint == IS_STRING, then string points to the current string.
Public Constructors
UnicodeSetIterator(UnicodeSet set)
Create an iterator over the given set.
Public Methods
boolean nextRange()
Returns the next element in the set, either a code point range or a string.
void reset(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.
Protected Methods
void loadRange(int range)
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static int IS_STRING

Value of codepoint if the iterator points to a string. If codepoint == IS_STRING, then examine string for the current iteration result.

public int codepoint

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

public int codepointEnd

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.

protected int endElement

protected int nextElement

public String string

If codepoint == IS_STRING, then string points to the current string. If codepoint != IS_STRING, the value of string is undefined.

Public Constructors

public UnicodeSetIterator (UnicodeSet set)

Create an iterator over the given set.

Parameters
set set to iterate over

Public Methods

public boolean 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.

public void reset (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.

public void reset ()

Resets this iterator to the start of the set.

Protected Methods

protected void loadRange (int range)