@Override public Set<N> predecessors(N node) { return delegate().predecessors(node); }
@Override public Set<N> predecessors(N node) { return delegate().predecessors(node); }
@Override public UnmodifiableIterator<EndpointPair<N>> iterator() { return Iterators.unmodifiableIterator( Iterators.concat( Iterators.transform( graph.predecessors(node).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N predecessor) { return EndpointPair.ordered(predecessor, node); } }), Iterators.transform( // filter out 'node' from successors (already covered by predecessors, above) Sets.difference(graph.successors(node), ImmutableSet.of(node)).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N successor) { return EndpointPair.ordered(node, successor); } }))); }
@Override public Set<N> predecessors(N node) { return delegate().predecessors(node); }
@Override public boolean contains(@Nullable Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public UnmodifiableIterator<EndpointPair<N>> iterator() { return Iterators.unmodifiableIterator( Iterators.concat( Iterators.transform( graph.predecessors(node).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N predecessor) { return EndpointPair.ordered(predecessor, node); } }), Iterators.transform( // filter out 'node' from successors (already covered by predecessors, above) Sets.difference(graph.successors(node), ImmutableSet.of(node)).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N successor) { return EndpointPair.ordered(node, successor); } }))); }
@Override public boolean contains(@NullableDecl Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public UnmodifiableIterator<EndpointPair<N>> iterator() { return Iterators.unmodifiableIterator( Iterators.concat( Iterators.transform( graph.predecessors(node).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N predecessor) { return EndpointPair.ordered(predecessor, node); } }), Iterators.transform( // filter out 'node' from successors (already covered by predecessors, above) Sets.difference(graph.successors(node), ImmutableSet.of(node)).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N successor) { return EndpointPair.ordered(node, successor); } }))); }
@Override public boolean contains(@NullableDecl Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public Set<N> predecessors(N node) { return delegate().predecessors(node); }
@Override public Set<N> predecessors(N node) { return delegate().predecessors(node); }
@Override public UnmodifiableIterator<EndpointPair<N>> iterator() { return Iterators.unmodifiableIterator( Iterators.concat( Iterators.transform( graph.predecessors(node).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N predecessor) { return EndpointPair.ordered(predecessor, node); } }), Iterators.transform( // filter out 'node' from successors (already covered by predecessors, above) Sets.difference(graph.successors(node), ImmutableSet.of(node)).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N successor) { return EndpointPair.ordered(node, successor); } }))); }
@Override public UnmodifiableIterator<EndpointPair<N>> iterator() { return Iterators.unmodifiableIterator( Iterators.concat( Iterators.transform( graph.predecessors(node).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N predecessor) { return EndpointPair.ordered(predecessor, node); } }), Iterators.transform( // filter out 'node' from successors (already covered by predecessors, above) Sets.difference(graph.successors(node), ImmutableSet.of(node)).iterator(), new Function<N, EndpointPair<N>>() { @Override public EndpointPair<N> apply(N successor) { return EndpointPair.ordered(node, successor); } }))); }
@Override public boolean contains(@Nullable Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }
@Override public boolean contains(@NullableDecl Object obj) { if (!(obj instanceof EndpointPair)) { return false; } EndpointPair<?> endpointPair = (EndpointPair<?>) obj; if (!endpointPair.isOrdered()) { return false; } Object source = endpointPair.source(); Object target = endpointPair.target(); return (node.equals(source) && graph.successors(node).contains(target)) || (node.equals(target) && graph.predecessors(node).contains(source)); } }