import java.util.ArrayList;
import java.util.List;
-public class State{
- private String stateName;
- private List<Transition> transitions;
-
- private State(){
- // do nothing
- }
+/**
+ * State Object
+ */
+public class State {
+ private final String stateName;
+ private final int hashCode;
+ private final List<Transition> transitions;
- public State(String state){
- this();
- this.stateName = state;
+ /**
+ * Constructor
+ * @param stateName String of the state name
+ */
+ public State(String stateName) {
+ this.stateName = stateName;
+ this.hashCode = stateName.toLowerCase().hashCode();
this.transitions = new ArrayList<>();
}
@Override
- public int hashCode(){
- return this.stateName.hashCode();
+ public int hashCode() {
+ return hashCode;
}
@Override
- public boolean equals(Object obj){
- if(obj == null){
+ public boolean equals(Object obj) {
+ if (obj == null) {
return false;
}
- if(!(obj instanceof State)){
+ if (!(obj instanceof State)) {
return false;
}
State state = (State)obj;
return this.stateName.equalsIgnoreCase(state.getStateName());
}
- public String getStateName(){
+ public String getStateName() {
return stateName;
}
- void addTransition(Transition transition){
+ void addTransition(Transition transition) {
this.transitions.add(transition);
}
}
@Override
- public String toString(){
+ public String toString() {
return this.stateName;
}
}