package edu.stanford.nlp.fsm;
import edu.stanford.nlp.util.Scored;
/**
* DFSATransition represents a transition in a weighted finite state
* transducer. For now, just null out fields that may not apply.
* This should really be FSATransition as there's nothing
* deterministic-specific. If FSA is ever made, this should be
* abstracted. The ID is a descriptor, not a unique ID.
*
* @author Dan Klein
* @version 12/14/00
*/
public final class DFSATransition<T,S> implements Scored {
private Object transitionID;
private DFSAState<T,S> source;
protected DFSAState<T,S> target; // used directly in DFSAMinimizer (only)
private double score;
private T input;
private Object output;
public DFSATransition(Object transitionID, DFSAState<T,S> source, DFSAState<T,S> target, T input, Object output, double score) {
this.transitionID = transitionID;
this.source = source;
this.target = target;
this.input = input;
this.output = output;
this.score = score;
}
public DFSAState<T,S> getSource() {
return source;
}
public DFSAState<T,S> source() {
return source;
}
public DFSAState<T,S> getTarget() {
return target;
}
public DFSAState<T,S> target() {
return target;
}
public Object getID() {
return transitionID;
}
public double score() {
return score;
}
public T getInput() {
return input;
}
public T input() {
return input;
}
public Object getOutput() {
return output;
}
public Object output() {
return output;
}
@Override
public String toString() {
return "[" + transitionID + "]" + source + " -" + input + ":" + output + "-> " + target;
}
}