package org.fastcatsearch.ir.io;
public class CharVectorTokenizer {
private CharVector resultVector;
private char[] buffer;
private int cursor;
private int offset;
private int length;
private int limit;
public CharVectorTokenizer(CharVector charVector){
this.buffer = charVector.array();
this.cursor = charVector.start();
this.limit = charVector.start() + charVector.length();
resultVector = charVector.clone();
}
public boolean hasNext(){
for (;cursor < limit; cursor++) {
if(Character.isWhitespace(buffer[cursor])){
if(length == 0){
continue;
}else{
return true;
}
}else{
if(length == 0){
offset = cursor;
}
}
length++;
}
return length > 0;
}
public CharVector next(){
resultVector.init(offset, length);
length = 0;
return resultVector;
}
}