addTransition method
Implementation
Transition addTransition({
Map<String, String> arguments = const {},
String? action,
required String from,
String? guard,
required String on,
required String to,
}) {
final event = getEvent(on);
final source = getState(from);
final target = getState(to);
final transition = Transition(
arguments: arguments,
action: action,
event: event,
guard: guard,
source: source,
target: target,
);
final key = (source, event, guard);
final found = _transitions[key];
if (found != null) {
final difference = found.difference(transition);
if (difference != null) {
throw StateError('''
A conflict was detected while adding the transition.
Transition key: ($source, $event, $guard)
Conflicting values: ${difference.$1}
Exist value: ${difference.$2.$1}
New value: ${difference.$2.$2} ''');
}
}
_transitions[key] = transition;
return transition;
}