/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package java.text; /** * An interface for the bidirectional iteration over a group of characters. The * iteration starts at the begin index in the group of characters and continues * to one index before the end index. */ public interface CharacterIterator extends Cloneable { /** * A constant which indicates that there is no character at the current * index. */ public static final char DONE = '\uffff'; /** * Returns a new {@code CharacterIterator} with the same properties. * * @return a shallow copy of this character iterator. * * @see java.lang.Cloneable */ public Object clone(); /** * Returns the character at the current index. * * @return the current character, or {@code DONE} if the current index is * past the beginning or end of the sequence. */ public char current(); /** * Sets the current position to the begin index and returns the character at * the new position. * * @return the character at the begin index. */ public char first(); /** * Returns the begin index. * * @return the index of the first character of the iteration. */ public int getBeginIndex(); /** * Returns the end index. * * @return the index one past the last character of the iteration. */ public int getEndIndex(); /** * Returns the current index. * * @return the current index. */ public int getIndex(); /** * Sets the current position to the end index - 1 and returns the character * at the new position. * * @return the character before the end index. */ public char last(); /** * Increments the current index and returns the character at the new index. * * @return the character at the next index, or {@code DONE} if the next * index would be past the end. */ public char next(); /** * Decrements the current index and returns the character at the new index. * * @return the character at the previous index, or {@code DONE} if the * previous index would be past the beginning. */ public char previous(); /** * Sets the current index to a new position and returns the character at the * new index. * * @param location * the new index that this character iterator is set to. * @return the character at the new index, or {@code DONE} if the index is * past the end. * @throws IllegalArgumentException * if {@code location} is less than the begin index or greater than * the end index. */ public char setIndex(int location); }