/**
* This is the String that is being iterated over.
*/
- String text;
+ CharacterIterator text;
/**
* This is the index into the collation decomposition where we are currently scanning.
setText (text);
}
+ /**
+ * This method initializes a new instance of <code>CollationElementIterator</code>
+ * to iterate over the specified <code>String</code> using the rules in the
+ * specified <code>RuleBasedCollator</code>.
+ *
+ * @param collator The <code>RuleBasedCollation</code> used for calculating collation values
+ * @param text The character iterator to iterate over.
+ */
+ CollationElementIterator(RuleBasedCollator collator, CharacterIterator text)
+ {
+ this.collator = collator;
+
+ setText (text);
+ }
+
RuleBasedCollator.CollationElement nextBlock()
{
if (index >= text_decomposition.length)
int alreadyExpanded = 0;
int idxToMove = 0;
- this.text = text;
+ this.text = new StringCharacterIterator(text);
this.index = 0;
String work_text = text.intern();
if (offset < 0)
throw new IllegalArgumentException("Negative offset: " + offset);
- if (offset > (text.length() - 1))
+ if (offset > (text.getEndIndex() - 1))
throw new IllegalArgumentException("Offset too large: " + offset);
for (index = 0; index < text_decomposition.length; index++)