public Set<State> initAndStart(StateMachine stateMachine){
  Context context=new RAMContext(System.currentTimeMillis(),null,stateMachine);
  final List<String> triggeredEvents=eventsDAO.findTriggeredEventsNamesBySMId(stateMachine.getId());
  Set<State> initialStates=context.getInitialStates(new HashSet<>(triggeredEvents));
  executeStates(stateMachine.getId(),initialStates);
  return initialStates;
}

public Set < State > initAndStart ( StateMachine stateMachine ) { Context context = new RAMContext ( System . currentTimeMillis ( ) , null , stateMachine ) ; final List < String > triggeredEvents = eventsDAO . findTriggeredEventsNamesBySMId ( stateMachine . getId ( ) ) ; Set < State > initialStates = context . getInitialStates ( new HashSet < > ( triggeredEvents ) ) ; executeStates ( stateMachine . getId ( ) , initialStates ) ; return initialStates ; }
perform init operations on a state machine and starts execution of states which are not dependant on any events .
