Class DirectionTransformer


  • public class DirectionTransformer
    extends java.lang.Object

    Functions for transforming graphs into directed or undirected graphs.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <V,​E>
      Graph<V,​E>
      toDirected​(Graph<V,​E> graph, com.google.common.base.Supplier<DirectedGraph<V,​E>> graph_factory, com.google.common.base.Supplier<E> edge_factory, boolean create_new)
      Transforms graph (which may be of any directionality) into a directed graph.
      static <V,​E>
      UndirectedGraph<V,​E>
      toUndirected​(Graph<V,​E> graph, com.google.common.base.Supplier<UndirectedGraph<V,​E>> graph_factory, com.google.common.base.Supplier<E> edge_factory, boolean create_new)
      Transforms graph (which may be of any directionality) into an undirected graph.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DirectionTransformer

        public DirectionTransformer()
    • Method Detail

      • toUndirected

        public static <V,​E> UndirectedGraph<V,​E> toUndirected​(Graph<V,​E> graph,
                                                                          com.google.common.base.Supplier<UndirectedGraph<V,​E>> graph_factory,
                                                                          com.google.common.base.Supplier<E> edge_factory,
                                                                          boolean create_new)
        Transforms graph (which may be of any directionality) into an undirected graph. (This may be useful for visualization tasks). Specifically:
        • Vertices are copied from graph.
        • Directed edges are 'converted' into a single new undirected edge in the new graph.
        • Each undirected edge (if any) in graph is 'recreated' with a new undirected edge in the new graph if create_new is true, or copied from graph otherwise.
        Type Parameters:
        V - the vertex type
        E - the edge type
        Parameters:
        graph - the graph to be transformed
        create_new - specifies whether existing undirected edges are to be copied or recreated
        graph_factory - used to create the new graph object
        edge_factory - used to create new edges
        Returns:
        the transformed Graph
      • toDirected

        public static <V,​E> Graph<V,​E> toDirected​(Graph<V,​E> graph,
                                                              com.google.common.base.Supplier<DirectedGraph<V,​E>> graph_factory,
                                                              com.google.common.base.Supplier<E> edge_factory,
                                                              boolean create_new)
        Transforms graph (which may be of any directionality) into a directed graph. Specifically:
        • Vertices are copied from graph.
        • Undirected edges are 'converted' into two new antiparallel directed edges in the new graph.
        • Each directed edge (if any) in graph is 'recreated' with a new edge in the new graph if create_new is true, or copied from graph otherwise.
        Type Parameters:
        V - the vertex type
        E - the edge type
        Parameters:
        graph - the graph to be transformed
        create_new - specifies whether existing directed edges are to be copied or recreated
        graph_factory - used to create the new graph object
        edge_factory - used to create new edges
        Returns:
        the transformed Graph