package joshua.decoder.ff.state_maintenance; import java.util.List; import joshua.decoder.chart_parser.SourcePath; import joshua.decoder.ff.tm.Rule; import joshua.decoder.hypergraph.HGNode; public interface StateComputer<D extends DPState> { /* a valid stateID can be any interger except -1 * */ void setStateID(int stateID); int getStateID(); D computeState(Rule rule, List<HGNode> antNodes, int spanStart, int spanEnd, SourcePath srcPath); D computeFinalState(HGNode antNode, int spanStart, int spanEnd, SourcePath srcPath); }