public void disconnect(Node fromNode, Node toNode) { Preconditions.checkNotNull(fromNode, "fromNode cannot be null!"); Preconditions.checkNotNull(toNode, "toNode cannot be null!"); if (!graph.hasEdgeConnecting(fromNode, toNode)) { logger.warn("Trying to disconnect two nodes that aren't connected, " + fromNode.getUri() + " and " + toNode.getUri()); } graph.removeEdge(fromNode, toNode); }
public void connect(Node ... nodeList) { Preconditions.checkArgument(nodeList.length > 1, "Expected at least 2 nodes as arguments to connect() - found " + nodeList.length); Node fromNode = null; for (Node toNode : nodeList) { Preconditions.checkNotNull(toNode, "toNode cannot be null!"); if (fromNode != null) { if (!graph.hasEdgeConnecting(fromNode, toNode)) { graph.putEdge(fromNode, toNode); } else { logger.warn("Trying to connect two already connected nodes, " + fromNode.getUri() + " and " + toNode.getUri()); } } fromNode = toNode; } }
@Test public void hasEdgeConnecting_mismatch() { putEdge(N1, N2); assertThat(graph.hasEdgeConnecting(EndpointPair.unordered(N1, N2))).isFalse(); assertThat(graph.hasEdgeConnecting(EndpointPair.unordered(N2, N1))).isFalse(); }
@Test public void hasEdgeConnecting_correct() { putEdge(N1, N2); assertThat(graph.hasEdgeConnecting(EndpointPair.unordered(N1, N2))).isTrue(); assertThat(graph.hasEdgeConnecting(EndpointPair.unordered(N2, N1))).isTrue(); }
@Test public void hasEdgeConnecting_mismatch() { putEdge(N1, N2); assertThat(graph.hasEdgeConnecting(EndpointPair.ordered(N1, N2))).isTrue(); assertThat(graph.hasEdgeConnecting(EndpointPair.ordered(N2, N1))).isTrue(); }
@Test public void hasEdgeConnecting_correct() { putEdge(N1, N2); assertThat(graph.hasEdgeConnecting(EndpointPair.ordered(N1, N2))).isTrue(); }
@Test public void hasEdgeConnecting_backwards() { putEdge(N1, N2); assertThat(graph.hasEdgeConnecting(EndpointPair.ordered(N2, N1))).isFalse(); }
@Override public boolean hasEdgeConnecting(N nodeU, N nodeV) { checkNotNull(nodeU, "nodeU"); checkNotNull(nodeV, "nodeV"); checkArgument(delegate.nodes().contains(nodeU), NODE_NOT_IN_TREE, nodeU); checkArgument(delegate.nodes().contains(nodeV), NODE_NOT_IN_TREE, nodeV); return delegate.hasEdgeConnecting(nodeU, nodeV); }