/** * Create a builder for this kind of graph. * * @param edgeSupplier the edge supplier * @param <V> the graph vertex type * @param <E> the graph edge type * @return a builder for this kind of graph */ public static <V, E> GraphBuilder<V, E, ? extends WeightedMultigraph<V, E>> createBuilder( Supplier<E> edgeSupplier) { return new GraphBuilder<>(new WeightedMultigraph<>(null, edgeSupplier)); }
/** * Create a builder for this kind of graph. * * @param edgeClass class on which to base factory for edges * @param <V> the graph vertex type * @param <E> the graph edge type * @return a builder for this kind of graph */ public static <V, E> GraphBuilder<V, E, ? extends WeightedMultigraph<V, E>> createBuilder( Class<? extends E> edgeClass) { return new GraphBuilder<>(new WeightedMultigraph<>(edgeClass)); }
public static UndirectedGraph<Node, DefaultLink> asDefaultGraph(UndirectedGraph<Node, LabeledLink> graph) { if (graph == null) { logger.debug("graph is null."); return null; } UndirectedGraph<Node, DefaultLink> g = new WeightedMultigraph<>(DefaultLink.class); for (Node v : graph.vertexSet()) g.addVertex(v); for (DefaultLink e: graph.edgeSet()) g.addEdge(e.getSource(), e.getTarget(), e); return g; }
public static WeightedMultigraph<Node, LabeledLink> asLabeledGraph(WeightedMultigraph<Node, DefaultLink> graph) { if (graph == null) { logger.debug("graph is null."); return null; } WeightedMultigraph<Node, LabeledLink> g = new WeightedMultigraph<>(LabeledLink.class); for (Node v : graph.vertexSet()) g.addVertex(v); for (DefaultLink e: graph.edgeSet()) if (e instanceof LabeledLink) g.addEdge(e.getSource(), e.getTarget(), (LabeledLink)e); return g; }
new WeightedMultigraph<>(DefaultLink.class);
new WeightedMultigraph<>(DefaultLink.class);
this.tree = new WeightedMultigraph<>(DefaultLink.class); for (Node n : g1.vertexSet()) this.tree.addVertex(n); return;
new WeightedMultigraph<>(DefaultLink.class);
new WeightedMultigraph<>(DefaultLink.class);
return new WeightedMultigraph<>(vertexSupplier, edgeSupplier); } else { return new Multigraph<>(vertexSupplier, edgeSupplier, false);
return new WeightedMultigraph<>(edgeClass); } else { return new Multigraph<>(edgeClass);