private int resolveOrder(String path) throws CyclicDependenciesException { seen = true; try { int highOrder = -1; for (Node dep : dependencies) { if (dep.seen) { throw new CyclicDependenciesException(path + " -> " + dep.toString()); } highOrder = Math.max(highOrder, dep.resolveOrder(path + " -> " + dep.toString())); } order = highOrder + 1; return order; } finally { seen = false; } }
private void verify() { for (Node node : nodes) { node.reset(); } for (Node node : nodes) { for (Node dep : node.getDependencies()) { if (!nodes.contains(dep)) { throw new SonarException( "A dependent node (" + dep + ") of " + " (" + node + ") was not included in the nodes list."); } } node.resolveOrder(); } }
public void resolveOrder() throws CyclicDependenciesException { resolveOrder(toString()); }