/**
*
*/
package querqy.trie;
/**
* @author René Kriegler, @renekrie
*
*/
public class State<T> {
public final T value;
public final boolean isKnown;
public final Node<T> node;
/**
* The index of the last matching char
*/
public final int index;
public State(boolean isKnown, T value, Node<T> node) {
this(isKnown, value, node, -1);
}
public State(boolean isKnown, T value, Node<T> node, int index) {
this.isKnown = isKnown;
this.value = value;
this.node = node;
this.index = index;
}
public boolean isKnown() {
return isKnown;
}
public boolean isFinal() {
return isKnown() && value != null;
}
public T getValue() {
return value;
}
public int getIndex() {
return index;
}
@Override
public String toString() {
return "State [value=" + value + ", isKnown=" + isKnown + ", index=" + index + "]";
}
}