001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package java.text;
019:
020: /**
021: * CharacterIterator is used to sequence over a group of characters. The
022: * iteration starts at the begin index in the group of character and continues
023: * to one index before the end index.
024: */
025: public interface CharacterIterator extends Cloneable {
026:
027: /**
028: * A constant which indicates there is no character.
029: */
030: public static final char DONE = '\uffff';
031:
032: /**
033: * Answers a new CharacterIterator with the same properties.
034: *
035: * @return a shallow copy of this CharacterIterator
036: *
037: * @see java.lang.Cloneable
038: */
039: public Object clone();
040:
041: /**
042: * Answers the character at the current index.
043: *
044: * @return the current character, or DONE if the current index is past the
045: * end
046: */
047: public char current();
048:
049: /**
050: * Sets the current position to the begin index and answers the character at
051: * the begin index.
052: *
053: * @return the character at the begin index
054: */
055: public char first();
056:
057: /**
058: * Answers the begin index.
059: *
060: * @return the index of the first character to iterate
061: */
062: public int getBeginIndex();
063:
064: /**
065: * Answers the end index.
066: *
067: * @return the index one past the last character to iterate
068: */
069: public int getEndIndex();
070:
071: /**
072: * Answers the current index.
073: *
074: * @return the current index
075: */
076: public int getIndex();
077:
078: /**
079: * Sets the current position to the end index - 1 and answers the character
080: * at the current position.
081: *
082: * @return the character before the end index
083: */
084: public char last();
085:
086: /**
087: * Increments the current index and returns the character at the new index.
088: *
089: * @return the character at the next index, or DONE if the next index is
090: * past the end
091: */
092: public char next();
093:
094: /**
095: * Decrements the current index and returns the character at the new index.
096: *
097: * @return the character at the previous index, or DONE if the previous
098: * index is past the beginning
099: */
100: public char previous();
101:
102: /**
103: * Sets the current index.
104: *
105: * @return the character at the new index, or DONE if the index is past the
106: * end
107: *
108: * @exception IllegalArgumentException
109: * when the new index is less than the begin index or greater
110: * than the end index
111: */
112: public char setIndex(int location);
113: }
|