aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/text/CollationElementIterator.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/text/CollationElementIterator.java')
-rw-r--r--libjava/java/text/CollationElementIterator.java79
1 files changed, 79 insertions, 0 deletions
diff --git a/libjava/java/text/CollationElementIterator.java b/libjava/java/text/CollationElementIterator.java
new file mode 100644
index 00000000000..15e60560189
--- /dev/null
+++ b/libjava/java/text/CollationElementIterator.java
@@ -0,0 +1,79 @@
+// CollationElementIterator.java - Iterate over decomposed characters.
+
+/* Copyright (C) 1999 Cygnus Solutions
+
+ This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
+details. */
+
+package java.text;
+
+/**
+ * @author Tom Tromey <tromey@cygnus.com>
+ * @date March 25, 1999
+ */
+/* Written using "Java Class Libraries", 2nd edition, plus online
+ * API docs for JDK 1.2 from http://www.javasoft.com.
+ * Status: Believed complete and correct to JDK 1.1.
+ */
+
+public final class CollationElementIterator
+{
+ public static final int NULLORDER = 0xffffffff;
+
+ public int next ()
+ {
+ if (index == text.length())
+ return NULLORDER;
+ return collator.ceiNext(this);
+ }
+
+ // This one returns int while the others return short.
+ public static final int primaryOrder (int order)
+ {
+ // From the JDK 1.2 spec.
+ return order >>> 16;
+ }
+
+ public void reset ()
+ {
+ index = 0;
+ }
+
+ public static final short secondaryOrder (int order)
+ {
+ // From the JDK 1.2 spec.
+ return (order >>> 8) & 255;
+ }
+
+ public static final short tertiaryOrder (int order)
+ {
+ // From the JDK 1.2 spec.
+ return order & 255;
+ }
+
+ // Non-public constructor.
+ CollationElementIterator (String text, RuleBasedCollator collator)
+ {
+ this.text = text;
+ this.index = 0;
+ this.lookahead_set = false;
+ this.lookahead = 0;
+ this.collator = collator;
+ }
+
+ // Text over which we iterate.
+ String text;
+
+ // Index of next character to examine in TEXT.
+ int index;
+
+ // A piece of lookahead.
+ boolean lookahead_set;
+ int lookahead;
+
+ // The RuleBasedCollator which created this object.
+ RuleBasedCollator collator;
+}