@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
@Override public Set<E> inEdges(N node) { return network.inEdges(node); }
@Override public Set<E> inEdges(N node) { return delegate().inEdges(node); }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
@Override public Set<E> inEdges(N node) { return delegate().inEdges(node); }
@Override public Set<E> inEdges(N node) { return delegate().inEdges(node); }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) { if (network.isDirected()) { Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network)); Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network)); int selfLoopCount = network.edgesConnecting(node, node).size(); return network.allowsParallelEdges() ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount) : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount); } else { Map<E, N> incidentEdgeMap = Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node)); return network.allowsParallelEdges() ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap) : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap); } }
private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) { if (network.isDirected()) { Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network)); Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network)); int selfLoopCount = network.edgesConnecting(node, node).size(); return network.allowsParallelEdges() ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount) : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount); } else { Map<E, N> incidentEdgeMap = Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node)); return network.allowsParallelEdges() ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap) : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap); } }
private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) { if (network.isDirected()) { Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network)); Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network)); int selfLoopCount = network.edgesConnecting(node, node).size(); return network.allowsParallelEdges() ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount) : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount); } else { Map<E, N> incidentEdgeMap = Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node)); return network.allowsParallelEdges() ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap) : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap); } }
assertThat(network.predecessors(nodeV)).contains(nodeU); assertThat(network.adjacentNodes(nodeV)).contains(nodeU); assertThat(network.inEdges(nodeV)).contains(edge); assertThat(network.incidentEdges(nodeV)).contains(edge); assertThat(network.incidentEdges(node).size() + selfLoopCount) .isEqualTo(network.inDegree(node) + network.outDegree(node)); assertThat(network.inEdges(node)).hasSize(network.inDegree(node)); assertThat(network.outEdges(node)).hasSize(network.outDegree(node)); } else { assertThat(network.predecessors(node)).isEqualTo(network.adjacentNodes(node)); assertThat(network.successors(node)).isEqualTo(network.adjacentNodes(node)); assertThat(network.inEdges(node)).isEqualTo(network.incidentEdges(node)); assertThat(network.outEdges(node)).isEqualTo(network.incidentEdges(node)); assertThat(network.inDegree(node)).isEqualTo(network.degree(node)); if (network.isDirected() || !isSelfLoop) { assertThat(edgesConnecting) .isEqualTo(Sets.intersection(network.outEdges(node), network.inEdges(otherNode))); .isEqualTo(EndpointPair.of(network, node, otherNode)); assertThat(network.outEdges(node)).contains(edge); assertThat(network.inEdges(otherNode)).contains(edge); network.inEdges(node).contains(incidentEdge) || network.outEdges(node).contains(incidentEdge)); assertThat(network.edges()).contains(incidentEdge); for (E inEdge : sanityCheckSet(network.inEdges(node))) {
@Override public Set<E> incomingEdgesOf(V vertex) { return network.inEdges(vertex); }
@Override public Set<E> inEdges(N node) { return delegate().inEdges(node); }
@Override public Set<E> inEdges(N node) { return network.inEdges(node); }
@Override public Set<E> inEdges(N node) { return delegate().inEdges(node); }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
/** * Initialize incoming EIGRP message queues for each adjacency * * @param eigrpTopology The topology representing EIGRP adjacencies */ void initQueues(Network<EigrpInterface, EigrpEdge> eigrpTopology) { _incomingRoutes = _interfaces.stream() .filter(eigrpTopology.nodes()::contains) .flatMap(n -> eigrpTopology.inEdges(n).stream()) .collect(toImmutableSortedMap(Function.identity(), e -> new ConcurrentLinkedQueue<>())); }
private void initIsisQueues(Network<IsisNode, IsisEdge> isisTopology) { // Initialize message queues for each IS-IS circuit if (_vrf.getIsisProcess() == null) { _isisIncomingRoutes = ImmutableSortedMap.of(); } else { _isisIncomingRoutes = _vrf.getInterfaceNames().stream() .map(ifaceName -> new IsisNode(_c.getHostname(), ifaceName)) .filter(isisTopology.nodes()::contains) .flatMap(n -> isisTopology.inEdges(n).stream()) .collect( toImmutableSortedMap(Function.identity(), e -> new ConcurrentLinkedQueue<>())); } }
private static <N, E> NetworkConnections<N, E> connectionsOf(Network<N, E> network, N node) { if (network.isDirected()) { Map<E, N> inEdgeMap = Maps.asMap(network.inEdges(node), sourceNodeFn(network)); Map<E, N> outEdgeMap = Maps.asMap(network.outEdges(node), targetNodeFn(network)); int selfLoopCount = network.edgesConnecting(node, node).size(); return network.allowsParallelEdges() ? DirectedMultiNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount) : DirectedNetworkConnections.ofImmutable(inEdgeMap, outEdgeMap, selfLoopCount); } else { Map<E, N> incidentEdgeMap = Maps.asMap(network.incidentEdges(node), adjacentNodeFn(network, node)); return network.allowsParallelEdges() ? UndirectedMultiNetworkConnections.ofImmutable(incidentEdgeMap) : UndirectedNetworkConnections.ofImmutable(incidentEdgeMap); } }