package iitb.Model;
import iitb.CRF.*;
/**
*
* @author Sunita Sarawagi
*
*/
public class EndFeatures extends FeatureTypes {
int stateId;
int endStateNum;
Object fname;
public EndFeatures(FeatureGenImpl m) {
super(m);
fname="End.";
}
public EndFeatures(FeatureGenImpl m, Object fname) {
super(m);
this.fname = fname;
}
public boolean startScanFeaturesAt(DataSequence data, int prevPos, int pos) {
if (pos < data.length()-1) {
stateId = -1;
return false;
} else {
endStateNum = 0;
stateId = model.endState(endStateNum);
return true;
}
}
public boolean hasNext() {
return (stateId >= 0);
}
public void next(FeatureImpl f) {
setFeatureIdentifier(stateId,stateId,fname,f);
f.yend = stateId;
f.ystart = -1;
f.val = 1;
endStateNum++;
stateId = model.endState(endStateNum);
}
};