mergeGraph function

MergeResult mergeGraph({
  1. required List<GraphNode> nodes,
  2. required List<GraphEdge> edges,
  3. required List<GraphFlow> flows,
})

Merged Nodes/Edges/Flows aller Quellen. Konflikte zwischen manuellen Quellen führen zu einer AdapterException mit allen Fundstellen.

Implementation

MergeResult mergeGraph({
  required List<GraphNode> nodes,
  required List<GraphEdge> edges,
  required List<GraphFlow> flows,
}) {
  final conflicts = <String>[];
  final mergedNodes = _mergeNodes(nodes, conflicts);
  final mergedFlows = _mergeFlows(flows, conflicts);
  final mergedEdges = _mergeEdges(edges, conflicts);
  if (conflicts.isNotEmpty) {
    throw AdapterException(conflicts);
  }
  return MergeResult(
    nodes: mergedNodes,
    edges: mergedEdges,
    flows: mergedFlows,
  );
}