remove method

void remove(
  1. StateNodeDefinition<AutomataState> node
)

Remove a active StateNodeDefinition.

When remove a node, we should also remove any other nodes which this node is part of the path, ie.

  • given a state of RootNode > A > B and RootNode > A > C
  • when trying to remove: RootNode > A We need to remove both RootNode > A > B and RootNode > A > C

Implementation

void remove(StateNodeDefinition node) {
  final toRemove = [node];
  for (final _activeNode in _activeNodes) {
    if (_activeNode.path.contains(node)) {
      toRemove.add(_activeNode);
    }
  }

  toRemove.forEach(_activeNodes.remove);
}