addFSMTransition<E> method

void addFSMTransition<E>(
  1. T fromState,
  2. T toState, {
  3. FSMHandler<T, E>? handler,
  4. FSMFilter<T, E>? filter,
  5. String? eventTarget,
  6. String? eventPath,
  7. String? eventFragment,
  8. Map<String, String>? arguments,
})

Implementation

void addFSMTransition<E>(
  T fromState,
  T toState, {
  FSMHandler<T, E>? handler,
  FSMFilter<T, E>? filter,
  String? eventTarget,
  String? eventPath,
  String? eventFragment,
  Map<String, String>? arguments,
}) {
  var topic = Topic.create<E>(arguments: arguments,fragment: eventFragment,path: eventPath,target: eventTarget);
  var eventChannel = _fsm._map[topic];
  if (eventChannel != null) {
    eventChannel[fromState] = _FSMNode<T, E>(
      fromState: fromState,
      toState: toState,
      handler: handler,
      filter: filter
    );
  } else {
    _fsm._map[topic] = {
      fromState: _FSMNode<T, E>(
        fromState: fromState,
        toState: toState,
        handler: handler,
        filter: filter
      ),
    };
  }
}