@Override public final Iterable<E> getEdges() { return delegate.getEdges(); }
/** * @return a collection of edges. */ public final Collection<E> getEdges() { final List<E> edges = new ArrayList<>(); for (final E edge : adapter.getEdges()) { edges.add(edge); } return edges; }
public final Collection<E> getEdges(N node, EdgeDirection direction) { final List<E> edges = new ArrayList<>(); for (final E edge : adapter.getEdges(node, direction)) { edges.add(edge); } return edges; }
@Override public final void removeEdges(N source, N target) { for (final E edge : delegate.getEdges(source, EdgeDirection.OUTGOING)) { final N tgt = delegate.getTip(edge, EdgeTip.TARGET); if (target == tgt) { removedEdges.add(edge); } } }
public final boolean hasEdges(N node, EdgeDirection direction) { return !Iterables.isEmpty(adapter.getEdges(node, direction)); }
@Override public final void removeNode(N node) { final boolean removed = nodes.remove(node); if (removed) { for (final E edge : delegate.getEdges(node, null)) { removeEdge(edge); } } }
@Override public final Iterable<E> getEdges(N node, EdgeDirection direction) { return Iterables.filter(delegate.getEdges(node, direction), isOwnedEdge); }
/** * @return the number if edges. */ public final int getEdgesCount() { return Iterables.size(adapter.getEdges()); }
@Override public final Iterable<E> getEdges(N node, EdgeDirection direction) { return Iterables.filter(delegate.getEdges(node, direction), isOwnedEdge); }
public final Collection<N> getNodes(N node, EdgeDirection direction) { final List<N> nodes = new ArrayList<>(); final EdgeTip tip = direction == EdgeDirection.INGOING ? EdgeTip.SOURCE : EdgeTip.TARGET; for (final E edge : adapter.getEdges(node, direction)) { nodes.add(adapter.getTip(edge, tip)); } return nodes; }
public final boolean hasEdge(N source, N target) { for (final E edge : adapter.getEdges(source, EdgeDirection.OUTGOING)) { if (adapter.getTip(edge, EdgeTip.TARGET) == target) { return true; } } return false; }
@Override public final Iterable<E> getEdges() { return Iterables.filter(delegate.getEdges(), isOwnedEdge); }
@Override public final Iterable<E> getEdges(N node, EdgeDirection direction) { return Iterables.filter(delegate.getEdges(node, direction), checkedEdgePredicate); }
@Override public final void removeEdges(N source, N target) { for (final E edge : delegate.getEdges(source, EdgeDirection.OUTGOING)) { final N tgt = delegate.getTip(edge, EdgeTip.TARGET); if (target == tgt) { edges.remove(edge); } } }
public final boolean hasEdges() { return !Iterables.isEmpty(adapter.getEdges()); }
@Override public final void clear() { reset(); for (final N node : delegate.getNodes()) { removedNodes.add(node); } for (final E edge : delegate.getEdges()) { removedEdges.add(edge); } }
private void addOutgoingClosure(N node, ExplicitSubGraph<N, E> result) { if (!result.containsNode(node)) { result.addNode(node); for (final E edge : adapter.getEdges(node, EdgeDirection.OUTGOING)) { if (!result.containsEdge(edge)) { final N target = adapter.getTip(edge, EdgeTip.TARGET); addOutgoingClosure(target, result); result.addEdge(edge); } } } }
void write(GvWriter writer) throws IOException { writer.beginGraph("g", true, null); for (final N node : adapter.getNodes()) { writer.addNode(getNodeId(node), getNodeAttributes(node, basic)); } for (final E edge : adapter.getEdges()) { writer.addEdge(getNodeId(adapter.getTip(edge, EdgeTip.SOURCE)), getNodeId(adapter.getTip(edge, EdgeTip.TARGET)), getEdgeAttributes(edge)); } writer.endGraph(); } }