xapi.source.impl.StringCharIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-dev Show documentation
Show all versions of xapi-dev Show documentation
Everything needed to run a comprehensive dev environment.
Just type X_ and pick a service from autocomplete;
new dev modules will be added as they are built.
The only dev service not included in the uber jar is xapi-dev-maven,
as it includes all runtime dependencies of maven, adding ~4 seconds to build time,
and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).
The newest version!
package xapi.source.impl;
import xapi.source.api.CharIterator;
public class StringCharIterator implements CharIterator {
final String content;
final int length;
int current = 0;
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);
}
}