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