hasCircularDependency method
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;
}