// 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 * @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; }