static <N, V> UndirectedGraphConnections<N, V> ofImmutable(Map<N, V> adjacentNodeValues) { return new UndirectedGraphConnections<>(ImmutableMap.copyOf(adjacentNodeValues)); }
@Override public void addPredecessor(N node, V value) { @SuppressWarnings("unused") V unused = addSuccessor(node, value); }
@Override public Set<N> successors() { return adjacentNodes(); }
private static <N> GraphConnections<N, Presence> connectionsOf(Graph<N> graph, N node) { Function<Object, Presence> edgeValueFn = Functions.constant(Presence.EDGE_EXISTS); return graph.isDirected() ? DirectedGraphConnections.ofImmutable( graph.predecessors(node), Maps.asMap(graph.successors(node), edgeValueFn)) : UndirectedGraphConnections.ofImmutable( Maps.asMap(graph.adjacentNodes(node), edgeValueFn)); }
@Override public void removePredecessor(N node) { @SuppressWarnings("unused") V unused = removeSuccessor(node); }
private GraphConnections<N, V> newConnections() { return isDirected() ? DirectedGraphConnections.<N, V>of() : UndirectedGraphConnections.<N, V>of(); } }
private static <N, V> GraphConnections<N, V> connectionsOf( final ValueGraph<N, V> graph, final N node) { Function<N, V> successorNodeToValueFn = new Function<N, V>() { @Override public V apply(N successorNode) { return graph.edgeValueOrDefault(node, successorNode, null); } }; return graph.isDirected() ? DirectedGraphConnections.ofImmutable( graph.predecessors(node), Maps.asMap(graph.successors(node), successorNodeToValueFn)) : UndirectedGraphConnections.ofImmutable( Maps.asMap(graph.adjacentNodes(node), successorNodeToValueFn)); } }
@Override public void removePredecessor(N node) { @SuppressWarnings("unused") V unused = removeSuccessor(node); }
private GraphConnections<N, V> newConnections() { return isDirected() ? DirectedGraphConnections.<N, V>of() : UndirectedGraphConnections.<N, V>of(); } }
private static <N> GraphConnections<N, Presence> connectionsOf(Graph<N> graph, N node) { Function<Object, Presence> edgeValueFn = Functions.constant(Presence.EDGE_EXISTS); return graph.isDirected() ? DirectedGraphConnections.ofImmutable( graph.predecessors(node), Maps.asMap(graph.successors(node), edgeValueFn)) : UndirectedGraphConnections.ofImmutable( Maps.asMap(graph.adjacentNodes(node), edgeValueFn)); }
@Override public Set<N> predecessors() { return adjacentNodes(); }
static <N, V> UndirectedGraphConnections<N, V> of() { return new UndirectedGraphConnections<>(new HashMap<N, V>(INNER_CAPACITY, INNER_LOAD_FACTOR)); }
@Override public void removePredecessor(N node) { @SuppressWarnings("unused") V unused = removeSuccessor(node); }
@Override public void addPredecessor(N node, V value) { @SuppressWarnings("unused") V unused = addSuccessor(node, value); }
private GraphConnections<N, V> newConnections() { return isDirected() ? DirectedGraphConnections.<N, V>of() : UndirectedGraphConnections.<N, V>of(); } }
private static <N, V> GraphConnections<N, V> connectionsOf( final ValueGraph<N, V> graph, final N node) { Function<N, V> successorNodeToValueFn = new Function<N, V>() { @Override public V apply(N successorNode) { return graph.edgeValueOrDefault(node, successorNode, null); } }; return graph.isDirected() ? DirectedGraphConnections.ofImmutable( graph.predecessors(node), Maps.asMap(graph.successors(node), successorNodeToValueFn)) : UndirectedGraphConnections.ofImmutable( Maps.asMap(graph.adjacentNodes(node), successorNodeToValueFn)); } }
@Override public Set<N> predecessors() { return adjacentNodes(); }
static <N, V> UndirectedGraphConnections<N, V> ofImmutable(Map<N, V> adjacentNodeValues) { return new UndirectedGraphConnections<>(ImmutableMap.copyOf(adjacentNodeValues)); }
@Override public void removePredecessor(N node) { @SuppressWarnings("unused") V unused = removeSuccessor(node); }
@Override public void addPredecessor(N node, V value) { @SuppressWarnings("unused") V unused = addSuccessor(node, value); }