addEdge method

  1. @override
void addEdge(
  1. Node parent,
  2. Node child
)
override

Implementation

@override
void addEdge(Node parent, Node child) {
  if (!containsNode(parent.key)) {
    addNode(parent);
  }
  if (!containsNode(child.key)) {
    addNode(child);
  }

  final existedParent = getNodeParent(child);
  if (!allowManyParents && existedParent != null) {
    throw Exception(
      'Node "${child.key}" already have parent "${existedParent.key}"',
    );
  }

  _parents[child] = parent;

  final firstEdges = _edges.putIfAbsent(parent, () => {});
  firstEdges.add(child);
}