summaryrefslogtreecommitdiff
path: root/libjava/classpath/java/text/CollationElementIterator.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/java/text/CollationElementIterator.java')
-rw-r--r--libjava/classpath/java/text/CollationElementIterator.java21
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++)