addFSMTransition<E> method

void addFSMTransition<E>(
  1. T fromState,
  2. T toState, {
  3. FSMHandler<T, E>? handler,
  4. FSMFilter<T, E>? filter,
  5. List<String>? eventPaths,
})

Implementation

void addFSMTransition<E>(
  T fromState,
  T toState, {
  FSMHandler<T, E>? handler,
  FSMFilter<T, E>? filter,
  List<String>? eventPaths,
}) {
  var topic = Topic.create<E>(paths: eventPaths);
  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),
    };
  }
}