/* GENERATED SOURCE. DO NOT MODIFY. */ // © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html package android.icu.impl; import java.text.CharacterIterator; /** * Implement the Java CharacterIterator interface on a CharSequence. * Intended for internal use by ICU only. * @hide Only a subset of ICU is exposed in Android */ public class CSCharacterIterator implements CharacterIterator { private int index; private CharSequence seq; /** * Constructor. * @param text The CharSequence to iterate over. */ public CSCharacterIterator(CharSequence text) { if (text == null) { throw new NullPointerException(); } seq = text; index = 0; } /** @{inheritDoc} */ @Override public char first() { index = 0; return current(); } /** @{inheritDoc} */ @Override public char last() { index = seq.length(); return previous(); } /** @{inheritDoc} */ @Override public char current() { if (index == seq.length()) { return DONE; } return seq.charAt(index); } /** @{inheritDoc} */ @Override public char next() { if (index < seq.length()) { ++index; } return current(); } /** @{inheritDoc} */ @Override public char previous() { if (index == 0) { return DONE; } --index; return current(); } /** @{inheritDoc} */ @Override public char setIndex(int position) { if (position < 0 || position > seq.length()) { throw new IllegalArgumentException(); } index = position; return current(); } /** @{inheritDoc} */ @Override public int getBeginIndex() { return 0; } /** @{inheritDoc} */ @Override public int getEndIndex() { return seq.length(); } /** @{inheritDoc} */ @Override public int getIndex() { return index; } /** @{inheritDoc} */ @Override public Object clone() { CSCharacterIterator copy = new CSCharacterIterator(seq); copy.setIndex(index); return copy; } }