package org.onap.appc.statemachine.impl;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.onap.appc.exceptions.InvalidInputException;
* Implementation of StateMachine
*/
public class StateMachineImpl implements StateMachine {
- private static final String invalidInputFormat = "VNF State or incoming event is invalid. State = %s event = %s";
- static final String toStringFormat = "StateMachineImpl{states=%s, events=%s}";
+ private static final String INVALID_INPUT_FORMAT = "VNF State or incoming event is invalid. State = %s event = %s";
+ static final String TO_STRING_FORMAT = "StateMachineImpl{states=%s, events=%s}";
private final Set<State> states;
private final Set<Event> events;
public StateMachineResponse handleEvent(State inputState, Event event) throws InvalidInputException{
if(!validateInputs(inputState,event)){
- throw new InvalidInputException(String.format(invalidInputFormat, inputState, event));
+ throw new InvalidInputException(String.format(INVALID_INPUT_FORMAT, inputState, event));
}
StateMachineResponse response = new StateMachineResponse();
State currentState = null;
State nextState = null;
- for(State stateInSet:states){
+ for(State stateInSet : states){
if(stateInSet.equals(inputState)){
currentState = stateInSet;
break;
}
}
if (currentState != null) {
+ List<Transition> transitions = currentState.getTransitions();
+ if (transitions != null) {
for (Transition transition : currentState.getTransitions()) {
if (event.equals(transition.getEvent())) {
nextState = transition.getNextState();
}
}
}
+ }
if(nextState == null){
response.setResponse(Response.NO_TRANSITION_DEFINED);
}
@Override
public String toString() {
- return String.format(toStringFormat, states, events);
+ return String.format(TO_STRING_FORMAT, states, events);
}
}