package xapi.source.impl;
import xapi.source.api.CharIterator;
public class StringCharIterator implements CharIterator {
final String content;
final int length;
int current;
public StringCharIterator(final String content) {
this.content = content;
this.length = content.length();
}
@Override
public char next() {
return content.charAt(current++);
}
@Override
public char peek() {
return content.charAt(current);
}
public String peekString() {
return content.substring(current, current+1);
}
@Override
public boolean hasNext() {
return current < length;
}
@Override
public String toString() {
return current == length ? "" : content.substring(current);
}
@Override
public CharSequence consume(final int size) {
final int was = current;
current += size;
return content.substring(was, current);
}
@Override
public CharSequence consumeAll() {
return consume(content.length()-current);
}
}