Class DOTExporter<V,​E>

    • Field Detail

      • DEFAULT_GRAPH_ID

        public static final java.lang.String DEFAULT_GRAPH_ID
        Default graph id used by the exporter.
        See Also:
        Constant Field Values
      • validatedIds

        private final java.util.Map<V,​java.lang.String> validatedIds
    • Constructor Detail

      • DOTExporter

        public DOTExporter()
        Constructs a new DOTExporter object with an integer id provider.
      • DOTExporter

        public DOTExporter​(java.util.function.Function<V,​java.lang.String> vertexIdProvider)
        Constructs a new DOTExporter object with the given id provider. Additional providers such as attributes can be given using the appropriate setter methods.
        Parameters:
        vertexIdProvider - for generating vertex IDs. Must not be null.
    • Method Detail

      • exportGraph

        public void exportGraph​(Graph<V,​E> g,
                                java.io.Writer writer)
        Exports a graph into a plain text file in DOT format.
        Specified by:
        exportGraph in interface GraphExporter<V,​E>
        Parameters:
        g - the graph to be exported
        writer - the writer to which the graph to be exported
      • computeHeader

        private java.lang.String computeHeader​(Graph<V,​E> graph)
        Compute the header
        Parameters:
        graph - the graph
        Returns:
        the header
      • computeFooter

        private java.lang.String computeFooter​(Graph<V,​E> graph)
        Compute the footer
        Parameters:
        graph - the graph
        Returns:
        the footer
      • computeConnector

        private java.lang.String computeConnector​(Graph<V,​E> graph)
        Compute the connector
        Parameters:
        graph - the graph
        Returns:
        the connector
      • computeGraphId

        private java.lang.String computeGraphId​(Graph<V,​E> graph)
        Get the id of the graph.
        Parameters:
        graph - the graph
        Returns:
        the graph id
      • renderAttributes

        private void renderAttributes​(java.io.PrintWriter out,
                                      java.util.Map<java.lang.String,​Attribute> attributes)
      • renderAttribute

        private void renderAttribute​(java.io.PrintWriter out,
                                     java.lang.String attrName,
                                     Attribute attribute)
      • escapeDoubleQuotes

        private static java.lang.String escapeDoubleQuotes​(java.lang.String labelName)
      • getVertexID

        private java.lang.String getVertexID​(V v)
        Return a valid vertex ID (with respect to the .dot language definition as described in http://www.graphviz.org/doc/info/lang.html

        Quoted from above mentioned source: An ID is valid if it meets one of the following criteria:

        • any string of alphabetic characters, underscores or digits, not beginning with a digit;
        • a number [-]?(.[0-9]+ | [0-9]+(.[0-9]*)? );
        • any double-quoted string ("...") possibly containing escaped quotes (\");
        • an HTML string (<...>).
        Throws:
        ExportException - if the given vertexIDProvider didn't generate a valid vertex ID.