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[] getNeighbors(Graph graph, Node[] nodes) { Set<Node> nodeTree = new HashSet<>(); graph.readLock(); try { for (Node n : nodes) { nodeTree.addAll(graph.getNeighbors(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]); }
public static Node[] getNeighborsOfNeighbors(Graph graph, Node[] nodes) { Set<Node> nodeTree = new HashSet<>(); graph.readLock(); try { for (Node n : nodes) { nodeTree.addAll(graph.getNeighbors(n).toCollection()); } //remove original nodes for (Node n : nodes) { nodeTree.remove(n); } for (Node n : nodeTree.toArray(new Node[0])) { nodeTree.addAll(graph.getNeighbors(n).toCollection()); } } finally { graph.readUnlock(); } //remove original nodes for (Node n : nodes) { nodeTree.remove(n); } return nodeTree.toArray(new Node[0]); }
topology[node_index] = new ArrayList<>(); Set<Node> uniqueNeighbors = new HashSet<>(graph.getNeighbors(node).toCollection()); for (Node neighbor : uniqueNeighbors) { if (node == neighbor) {
Collection<Node> nodes = graph.getNodes().toCollection();