--- old/src/java.base/share/classes/sun/text/normalizer/TrieIterator.java 2015-05-18 17:53:34.508753414 +0400 +++ new/src/java.base/share/classes/sun/text/normalizer/TrieIterator.java 2015-05-18 17:53:34.360753414 +0400 @@ -37,17 +37,17 @@ package sun.text.normalizer; /** - *

Class enabling iteration of the values in a Trie.

+ * Class enabling iteration of the values in a Trie. *

Result of each iteration contains the interval of codepoints that have - * the same value type and the value type itself.

+ * the same value type and the value type itself. *

The comparison of each codepoint value is done via extract(), which the - * default implementation is to return the value as it is.

+ * default implementation is to return the value as it is. *

Method extract() can be overwritten to perform manipulations on - * codepoint values in order to perform specialized comparison.

+ * codepoint values in order to perform specialized comparison. *

TrieIterator is designed to be a generic iterator for the CharTrie * and the IntTrie, hence to accommodate both types of data, the return - * result will be in terms of int (32 bit) values.

- *

See com.ibm.icu.text.UCharacterTypeIterator for examples of use.

+ * result will be in terms of int (32 bit) values. + *

See com.ibm.icu.text.UCharacterTypeIterator for examples of use. *

Notes for porting utrie_enum from icu4c to icu4j:
* Internally, icu4c's utrie_enum performs all iterations in its body. In Java * sense, the caller will have to pass a object with a callback function @@ -63,18 +63,17 @@ * the method extract(int) (equivalent to UTrieEnumValue). Independent of icu4j, * the caller will have to code his own iteration and flesh out the task * (equivalent to UTrieEnumRange) to be performed in the iteration loop. - *

- *

There are basically 3 usage scenarios for porting:

+ * + *

There are basically 3 usage scenarios for porting: *

1) UTrieEnumValue is the only implemented callback then just implement a * subclass of TrieIterator and override the extract(int) method. The * extract(int) method is analogus to UTrieEnumValue callback. - *

+ * *

2) UTrieEnumValue and UTrieEnumRange both are implemented then implement - * a subclass of TrieIterator, override the extract method and iterate, e.g - *

- *

utrie_enum(&normTrie, _enumPropertyStartsValue, _enumPropertyStartsRange, - * set);
- * In Java :
+ * a subclass of TrieIterator, override the extract method and iterate, e.g.
+ * {@code utrie_enum(&normTrie, _enumPropertyStartsValue, _enumPropertyStartsRange, + * set);}
+ * In Java:
*

  * class TrieIteratorImpl extends TrieIterator{
  *     public TrieIteratorImpl(Trie data){
@@ -90,17 +89,17 @@
  *     // port the implementation of _enumPropertyStartsRange
  * }
  * 
- *

+ * *

3) UTrieEnumRange is the only implemented callback then just implement * the while loop, when utrie_enum is called - *

+ * 
{@code
  * // utrie_enum(&fcdTrie, NULL, _enumPropertyStartsRange, set);
  * TrieIterator fcdIter  = new TrieIterator(fcdTrieImpl.fcdTrie);
  * while(fcdIter.next(result)){
  *     set.add(result.start);
  * }
- * 
- *

+ * }
+ * * @author synwee * @see com.ibm.icu.impl.Trie * @see com.ibm.icu.lang.UCharacterTypeIterator