hasCircularDependency method

bool hasCircularDependency()

Validates the graph for circular dependencies

Implementation

bool hasCircularDependency() {
  final visited = <String>{};
  final recursionStack = <String>{};

  bool hasCycle(String nodeId) {
    if (recursionStack.contains(nodeId)) return true;
    if (visited.contains(nodeId)) return false;

    visited.add(nodeId);
    recursionStack.add(nodeId);

    for (final conn in getOutputConnections(nodeId)) {
      if (hasCycle(conn.targetNodeId)) return true;
    }

    recursionStack.remove(nodeId);
    return false;
  }

  for (final node in nodes) {
    if (hasCycle(node.id)) return true;
  }

  return false;
}