com.ibm.icu.text
Class CanonicalIterator

java.lang.Object
  extended by com.ibm.icu.text.CanonicalIterator

public final class CanonicalIterator
extends Object

This class allows one to iterate through all the strings that are canonically equivalent to a given string. For example, here are some sample results: Results for: {A WITH RING ABOVE}{d}{DOT ABOVE}{CEDILLA}

 1: {A}{RING ABOVE}{d}{DOT ABOVE}{CEDILLA}
 2: {A}{RING ABOVE}{d}{CEDILLA}{DOT ABOVE}
 3: {A}{RING ABOVE}{d WITH DOT ABOVE}{CEDILLA}
 4: {A}{RING ABOVE}{d WITH CEDILLA}{DOT ABOVE}
 5: {A WITH RING ABOVE}{d}{DOT ABOVE}{CEDILLA}
 6: {A WITH RING ABOVE}{d}{CEDILLA}{DOT ABOVE}
 7: {A WITH RING ABOVE}{d WITH DOT ABOVE}{CEDILLA}
 8: {A WITH RING ABOVE}{d WITH CEDILLA}{DOT ABOVE}
 9: {ANGSTROM SIGN}{d}{DOT ABOVE}{CEDILLA}
10: {ANGSTROM SIGN}{d}{CEDILLA}{DOT ABOVE}
11: {ANGSTROM SIGN}{d WITH DOT ABOVE}{CEDILLA}
12: {ANGSTROM SIGN}{d WITH CEDILLA}{DOT ABOVE}

Note: the code is intended for use with small strings, and is not suitable for larger ones, since it has not been optimized for that situation.

Author:
M. Davis
Status:
Stable ICU 2.4.

Constructor Summary
CanonicalIterator(String source)
          Construct a CanonicalIterator object
 
Method Summary
 String getSource()
          Gets the NFD form of the current source we are iterating over.
 String next()
          Get the next canonically equivalent string.
static void permute(String source, boolean skipZeros, Set<String> output)
          Deprecated. This API is ICU internal only.
 void reset()
          Resets the iterator so that one can start again from the beginning.
 void setSource(String newSource)
          Set a new source for this iterator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CanonicalIterator

public CanonicalIterator(String source)
Construct a CanonicalIterator object

Parameters:
source - string to get results for
Status:
Stable ICU 2.4.
Method Detail

getSource

public String getSource()
Gets the NFD form of the current source we are iterating over.

Returns:
gets the source: NOTE: it is the NFD form of the source originally passed in
Status:
Stable ICU 2.4.

reset

public void reset()
Resets the iterator so that one can start again from the beginning.

Status:
Stable ICU 2.4.

next

public String next()
Get the next canonically equivalent string.
Warning: The strings are not guaranteed to be in any particular order.

Returns:
the next string that is canonically equivalent. The value null is returned when the iteration is done.
Status:
Stable ICU 2.4.

setSource

public void setSource(String newSource)
Set a new source for this iterator. Allows object reuse.

Parameters:
newSource - the source string to iterate against. This allows the same iterator to be used while changing the source string, saving object creation.
Status:
Stable ICU 2.4.

permute

public static void permute(String source,
                           boolean skipZeros,
                           Set<String> output)
Deprecated. This API is ICU internal only.

Simple implementation of permutation.
Warning: The strings are not guaranteed to be in any particular order.

Parameters:
source - the string to find permutations for
skipZeros - set to true to skip characters with canonical combining class zero
output - the set to add the results to
Status:
Internal. This API is ICU internal only.


Copyright (c) 2011 IBM Corporation and others.