@Override public final boolean containsEdge(E edge) { return delegate.containsEdge(edge); }
@Override public final boolean containsNode(N node) { return delegate.containsNode(node); }
@Override public final Iterable<E> getEdges() { return delegate.getEdges(); }
if (adapter.containsNode(node)) { final ExtensionSubGraph<N, E> result = new ExtensionSubGraph<>(adapter); for (final E edge : adapter.getEdges(next, EdgeDirection.OUTGOING)) { result.addEdge(edge); final N target = adapter.getTip(edge, EdgeTip.TARGET); if (!done.contains(target)) { todo.add(target); for (final E edge : adapter.getEdges(next, EdgeDirection.INGOING)) { result.addEdge(edge); final N source = adapter.getTip(edge, EdgeTip.SOURCE); if (!done.contains(source)) { todo.add(source);
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(); } }
@Override public final Iterable<N> getNodes() { return delegate.getNodes(); }
@Override public final N getTip(E edge, EdgeTip tip) { return delegate.getTip(edge, tip); }
@Override public final void removeNode(N node) { if (delegate.containsNode(node)) { removedNodes.add(node); for (final E edge : delegate.getEdges(node, EdgeDirection.INGOING)) { removeEdge(edge); } for (final E edge : delegate.getEdges(node, EdgeDirection.OUTGOING)) { removeEdge(edge); } } }
/** * @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; }
/** * @return a collection of nodes. */ public final Collection<N> getNodes() { final List<N> nodes = new ArrayList<>(); for (final N node : adapter.getNodes()) { nodes.add(node); } return nodes; }
@Override public final N getTip(E edge, EdgeTip tip) { return delegate.getTip(edge, tip); } }
/** * Print a graph (adapter) to an output stream. * * @param <N> Node class. * @param <E> Edge class. * @param adapter The graph adapter. * @param details If true, print detailed information. * @param out The stream to use. */ public static <N, E> void print(GraphAdapter<N, E> adapter, boolean details, PrintStream out) { final GraphBasicQueries<N, E> q = new GraphBasicQueries<>(adapter); out.println("Nodes: " + q.getNodesCount() + " Edges: " + q.getEdgesCount()); if (details) { for (final N node : adapter.getNodes()) { out.println(" " + node); } for (final E edge : adapter.getEdges()) { out.println(" " + edge); } } } }
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; }
/** * @return the number of nodes. */ public final int getNodesCount() { return Iterables.size(adapter.getNodes()); }
@Override public final N getTip(E edge, EdgeTip tip) { return delegate.getTip(edge, tip); }
@Override public final void removeEdge(E edge) { if (delegate.containsEdge(edge)) { removedEdges.add(edge); } }
/** * Checks that a node belongs to delegate. * * @param node The tested node. * @throws IllegalArgumentException When delegate does not contain node. */ protected void checkNodeValidity(N node) { if (!delegate.containsNode(node)) { throw new IllegalArgumentException("Node (" + node + ") does not belong to delegate"); } }