public static Node[] getPredecessors(DirectedGraph graph, Node[] nodes) { Set<Node> nodeTree = new HashSet<>(); graph.readLock(); try { for (Node n : nodes) { nodeTree.addAll(graph.getPredecessors(n).toCollection()); } } finally { graph.readUnlock(); } //remove original nodes for (Node n : nodes) { nodeTree.remove(n); } return nodeTree.toArray(new Node[0]); }
public static Node[] getSuccessors(DirectedGraph graph, Node[] nodes) { Set<Node> nodeTree = new HashSet<>(); graph.readLock(); try { for (Node n : nodes) { nodeTree.addAll(graph.getSuccessors(n).toCollection()); } } finally { graph.readUnlock(); } //remove original nodes for (Node n : nodes) { nodeTree.remove(n); } return nodeTree.toArray(new Node[0]); }
@Override public void compute() { graph.readLock(); try {