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);
}
}
import org.onap.appc.statemachine.objects.StateMachineResponse;
public class StateMachineImplTest {
+ private StateMachineMetadata.StateMachineMetadataBuilder builder;
private StateMachineMetadata metadata;
private StateMachineImpl stateMachine;
@Test
public void testToString() throws Exception {
Assert.assertEquals(
- String.format(stateMachine.toStringFormat, metadata.getStates(), metadata.getEvents()),
+ String.format(stateMachine.TO_STRING_FORMAT, metadata.getStates(), metadata.getEvents()),
stateMachine.toString());
}