Class UnicodeMapIterator<T>
To iterate over code points, use a loop like this:
UnicodeSetIterator it = new UnicodeSetIterator(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 = new UnicodeSetIterator(set); while (set.nextRange()) { if (set.codepoint != UnicodeSetIterator.IS_STRING) { processCodepointRange(set.codepoint, set.codepointEnd); } else { processString(set.string); } }
-
Field Summary
FieldsModifier and TypeFieldDescriptionint
Current code point, or the special value IS_STRING, if the iterator points to a string.int
When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING.protected int
private int
static int
Value of codepoint if the iterator points to a string.private UnicodeMap<T>
protected int
private int
If codepoint == IS_STRING, then string points to the current string.The value associated with this element or range. -
Constructor Summary
ConstructorsConstructorDescriptionCreate an iterator over nothing.Create an iterator over the given set. -
Method Summary
Modifier and TypeMethodDescriptionGets the current string from the iterator.protected T
loadRange
(int range) boolean
next()
Returns the next element in the set, either a single code point or a string.boolean
Returns the next element in the set, either a code point range or a string.reset()
Resets this iterator to the start of the set.void
reset
(UnicodeMap set) Sets this iterator to visit the elements of the given set and resets it to the start of that set.
-
Field Details
-
IS_STRING
public static int IS_STRINGValue of codepoint if the iterator points to a string. If codepoint == IS_STRING, then examine string for the current iteration result. -
codepoint
public int codepointCurrent code point, or the special value IS_STRING, if the iterator points to a string. -
codepointEnd
public int codepointEndWhen 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. -
string
If codepoint == IS_STRING, then string points to the current string. If codepoint != IS_STRING, the value of string is undefined. -
value
The value associated with this element or range. -
map
-
endRange
private int endRange -
range
private int range -
stringIterator
-
endElement
protected int endElement -
nextElement
protected int nextElement
-
-
Constructor Details
-
UnicodeMapIterator
Create an iterator over the given set.- Parameters:
set
- set to iterate over
-
UnicodeMapIterator
public UnicodeMapIterator()Create an iterator over nothing. next() and nextRange() return false. This is a convenience constructor allowing the target to be set later.
-
-
Method Details
-
next
public boolean 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.
- Returns:
- true if there was another element in the set and this object contains the element.
-
nextRange
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.
-
reset
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.
-
reset
Resets this iterator to the start of the set.- Returns:
-
getString
Gets the current string from the iterator. Only use after calling next(), not nextRange(). -
loadRange
-