/** * {@inheritDoc} */ @Override public Supplier<E> getEdgeSupplier() { return base.getEdgeSupplier(); }
/** * {@inheritDoc} */ @Override public Supplier<E> getEdgeSupplier() { return base.getEdgeSupplier(); }
/** * {@inheritDoc} * * <p> * Returns the delegator's edge supplier or the backing graph's edge supplier in case of null. */ @Override public Supplier<E> getEdgeSupplier() { if (edgeSupplier != null) { return edgeSupplier; } else { return delegate.getEdgeSupplier(); } }
Supplier<E> edgeSupplier = g.getEdgeSupplier(); if (edgeSupplier == null) { throw new UnsupportedOperationException("Graph contains no edge supplier");
/** * Create a graph type builder which will create the same graph type as the parameter graph. The * new graph will use the same vertex and edge suppliers as the input graph. * * @param graph a graph * @return a type builder * @param <V> the graph vertex type * @param <E> the graph edge type */ public static <V, E> GraphTypeBuilder<V, E> forGraph(Graph<V, E> graph) { GraphTypeBuilder<V, E> builder = forGraphType(graph.getType()); builder.vertexSupplier = graph.getVertexSupplier(); builder.edgeSupplier = graph.getEdgeSupplier(); return builder; }
.<V, E> undirected().edgeSupplier(graph.getEdgeSupplier()) .vertexSupplier(graph.getVertexSupplier()).allowingMultipleEdges(false) .allowingSelfLoops(false).buildGraph(); if (vertexLabels.get(z) > j) { Y.add(z); E fillEdge = graph.getEdgeSupplier().get(); fillEdges.add(fillEdge); addToReach(vertexLabels.get(z), z, reach);
this.originalGraph.getVertexSupplier(), this.originalGraph.getEdgeSupplier()), new HashMap<>(), false); Graphs.addGraph(workingGraph, this.originalGraph);
graph.getVertexSupplier(), graph.getEdgeSupplier(), graph.getType().isWeighted()); Graphs.addGraph(eulerGraph, graph); Map<E, GraphPath<V, E>> shortcutEdges = new HashMap<>();
graph.getVertexSupplier(), graph.getEdgeSupplier(), graph.getType().isWeighted()); Graphs.addGraph(eulerGraph, graph); Map<E, GraphPath<V, E>> shortcutEdges = new HashMap<>();
/** * Returns all anticomponents of a graph and a vertex set. * * @param g A Graph * @param Y A set of vertices * @return List of anticomponents of Y in g */ private List<Set<V>> findAllAnticomponentsOfY(Graph<V, E> g, Set<V> Y) { Graph<V, E> target; if (g.getType().isSimple()) target = new SimpleGraph<>( g.getVertexSupplier(), g.getEdgeSupplier(), g.getType().isWeighted()); else target = new Multigraph<>( g.getVertexSupplier(), g.getEdgeSupplier(), g.getType().isWeighted()); new ComplementGraphGenerator<>(g).generateGraph(target); return findAllComponents(target, Y); }
E> extraGraph = GraphTypeBuilder .<V, E> directed().allowingMultipleEdges(true).allowingSelfLoops(true) .edgeSupplier(graph.getEdgeSupplier()).vertexSupplier(graph.getVertexSupplier()) .buildGraph();
if (g.getType().isSimple()) complementGraph = new SimpleGraph<>( g.getVertexSupplier(), g.getEdgeSupplier(), g.getType().isWeighted()); else complementGraph = new Multigraph<>( g.getVertexSupplier(), g.getEdgeSupplier(), g.getType().isWeighted()); new ComplementGraphGenerator<>(g).generateGraph(complementGraph);
/** * Create a copy of a graph for internal use. * * @param graph the graph to copy. * * @return A copy of the graph projected to a SimpleGraph. */ private static <V, E> Graph<V, E> copyAsSimpleGraph(Graph<V, E> graph) { Graph<V, E> copy = GraphTypeBuilder .<V, E> undirected().edgeSupplier(graph.getEdgeSupplier()) .vertexSupplier(graph.getVertexSupplier()).allowingMultipleEdges(false) .allowingSelfLoops(false).buildGraph(); if (graph.getType().isSimple()) { Graphs.addGraph(copy, graph); } else { // project graph to SimpleGraph Graphs.addAllVertices(copy, graph.vertexSet()); for (E e : graph.edgeSet()) { V v1 = graph.getEdgeSource(e); V v2 = graph.getEdgeTarget(e); if (!v1.equals(v2) && !copy.containsEdge(e)) { copy.addEdge(v1, v2); } } } return copy; }
Graph<V, E> complement = Pseudograph.<V, E> createBuilder(graph.getEdgeSupplier()).build(); generator.generateGraph(complement);
.<V, E> directed().edgeSupplier(graph.getEdgeSupplier()) .vertexSupplier(graph.getVertexSupplier()).allowingMultipleEdges(false) .allowingSelfLoops(true).buildGraph();