/** * Returns a view of {@code network} with the direction (if any) of every edge reversed. All other * properties remain intact, and further updates to {@code network} will be reflected in the view. */ public static <N, E> Network<N, E> transpose(Network<N, E> network) { if (!network.isDirected()) { return network; // the transpose of an undirected network is an identical network } if (network instanceof TransposedNetwork) { return ((TransposedNetwork<N, E>) network).network; } return new TransposedNetwork<>(network); }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { return delegate().edgesConnecting(nodeV, nodeU); // transpose }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
@Override public Set<N> successors(N node) { return delegate().predecessors(node); // transpose }
@Override public Set<N> successors(N node) { return delegate().predecessors(node); // transpose }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }
@Override public Set<E> inEdges(N node) { return delegate().outEdges(node); // transpose }
@Override public Set<N> predecessors(N node) { return delegate().successors(node); // transpose }
@Override public E edgeConnectingOrNull(N nodeU, N nodeV) { return delegate().edgeConnectingOrNull(nodeV, nodeU); // transpose }
@Override public Optional<E> edgeConnecting(N nodeU, N nodeV) { return delegate().edgeConnecting(nodeV, nodeU); // transpose }
@Override public Set<E> edgesConnecting(N nodeU, N nodeV) { return delegate().edgesConnecting(nodeV, nodeU); // transpose }
@Override public Set<E> inEdges(N node) { return delegate().outEdges(node); // transpose }
@Override public E edgeConnectingOrNull(N nodeU, N nodeV) { return delegate().edgeConnectingOrNull(nodeV, nodeU); // transpose }
@Override public Optional<E> edgeConnecting(N nodeU, N nodeV) { return delegate().edgeConnecting(nodeV, nodeU); // transpose }
@Override public int inDegree(N node) { return delegate().outDegree(node); // transpose }
/** * Returns a view of {@code network} with the direction (if any) of every edge reversed. All other * properties remain intact, and further updates to {@code network} will be reflected in the view. */ public static <N, E> Network<N, E> transpose(Network<N, E> network) { if (!network.isDirected()) { return network; // the transpose of an undirected network is an identical network } if (network instanceof TransposedNetwork) { return ((TransposedNetwork<N, E>) network).network; } return new TransposedNetwork<>(network); }
@Override public boolean hasEdgeConnecting(N nodeU, N nodeV) { return delegate().hasEdgeConnecting(nodeV, nodeU); // transpose } }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }
@Override public int outDegree(N node) { return delegate().inDegree(node); // transpose }
@Override public Set<E> outEdges(N node) { return delegate().inEdges(node); // transpose }