diff options
Diffstat (limited to 'libjava/classpath/java/text/CollationElementIterator.java')
-rw-r--r-- | libjava/classpath/java/text/CollationElementIterator.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/libjava/classpath/java/text/CollationElementIterator.java b/libjava/classpath/java/text/CollationElementIterator.java index 45c79142cc7..08c5cb56361 100644 --- a/libjava/classpath/java/text/CollationElementIterator.java +++ b/libjava/classpath/java/text/CollationElementIterator.java @@ -73,7 +73,7 @@ public final class CollationElementIterator /** * 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. @@ -111,6 +111,21 @@ public final class CollationElementIterator 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) @@ -246,7 +261,7 @@ public final class CollationElementIterator int alreadyExpanded = 0; int idxToMove = 0; - this.text = text; + this.text = new StringCharacterIterator(text); this.index = 0; String work_text = text.intern(); @@ -440,7 +455,7 @@ public final class CollationElementIterator 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++) |