Class GraphMLExporter<V,​E>

    • Field Detail

      • ATTRIBUTE_KEY_PREFIX

        private static final java.lang.String ATTRIBUTE_KEY_PREFIX
        See Also:
        Constant Field Values
      • totalAttributes

        private int totalAttributes
      • VERTEX_LABEL_DEFAULT_ATTRIBUTE_NAME

        private static final java.lang.String VERTEX_LABEL_DEFAULT_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • EDGE_WEIGHT_DEFAULT_ATTRIBUTE_NAME

        private static final java.lang.String EDGE_WEIGHT_DEFAULT_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • EDGE_LABEL_DEFAULT_ATTRIBUTE_NAME

        private static final java.lang.String EDGE_LABEL_DEFAULT_ATTRIBUTE_NAME
        See Also:
        Constant Field Values
      • vertexLabelAttributeName

        private java.lang.String vertexLabelAttributeName
      • edgeWeightAttributeName

        private java.lang.String edgeWeightAttributeName
      • edgeLabelAttributeName

        private java.lang.String edgeLabelAttributeName
      • exportEdgeWeights

        private boolean exportEdgeWeights
        Whether to print edge weights in case the graph is weighted.
      • exportVertexLabels

        private boolean exportVertexLabels
        Whether to try to print vertex labels. They must be found in the corresponding attribute provider.
      • exportEdgeLabels

        private boolean exportEdgeLabels
        Whether to try to print edge labels. They must be found in the corresponding attribute provider.
    • Constructor Detail

      • GraphMLExporter

        public GraphMLExporter()
        Constructs a new GraphMLExporter with integer id provider for the vertices.
      • GraphMLExporter

        public GraphMLExporter​(java.util.function.Function<V,​java.lang.String> vertexIdProvider)
        Constructs a new GraphMLExporter.
        Parameters:
        vertexIdProvider - for generating vertex identifiers. Must not be null.
    • Method Detail

      • registerAttribute

        public void registerAttribute​(java.lang.String name,
                                      GraphMLExporter.AttributeCategory category,
                                      AttributeType type)
        Register a GraphML-Attribute
        Parameters:
        name - the attribute name
        category - the attribute category
        type - the attribute type
      • registerAttribute

        public void registerAttribute​(java.lang.String name,
                                      GraphMLExporter.AttributeCategory category,
                                      AttributeType type,
                                      java.lang.String defaultValue)
        Register a GraphML-Attribute
        Parameters:
        name - the attribute name
        category - the attribute category
        type - the attribute type
        defaultValue - default value
      • unregisterAttribute

        public void unregisterAttribute​(java.lang.String name)
        Unregister a GraphML-Attribute
        Parameters:
        name - the attribute name
      • isExportEdgeWeights

        public boolean isExportEdgeWeights()
        Whether the exporter will print edge weights.
        Returns:
        true if the exporter prints edge weights, false otherwise
      • setExportEdgeWeights

        public void setExportEdgeWeights​(boolean exportEdgeWeights)
        Set whether the exporter will print edge weights.
        Parameters:
        exportEdgeWeights - value to set
      • isExportVertexLabels

        public boolean isExportVertexLabels()
        Whether the exporter will print vertex labels.
        Returns:
        true if the exporter prints vertex labels, false otherwise
      • setExportVertexLabels

        public void setExportVertexLabels​(boolean exportVertexLabels)
        Set whether the exporter will print vertex labels.
        Parameters:
        exportVertexLabels - value to set
      • isExportEdgeLabels

        public boolean isExportEdgeLabels()
        Whether the exporter will print edge labels.
        Returns:
        true if the exporter prints edge labels, false otherwise
      • setExportEdgeLabels

        public void setExportEdgeLabels​(boolean exportEdgeLabels)
        Set whether the exporter will print edge labels.
        Parameters:
        exportEdgeLabels - value to set
      • getVertexLabelAttributeName

        public java.lang.String getVertexLabelAttributeName()
        Get the attribute name for vertex labels
        Returns:
        the attribute name
      • setVertexLabelAttributeName

        public void setVertexLabelAttributeName​(java.lang.String vertexLabelAttributeName)
        Set the attribute name to use for vertex labels.
        Parameters:
        vertexLabelAttributeName - the attribute name
      • getEdgeLabelAttributeName

        public java.lang.String getEdgeLabelAttributeName()
        Get the attribute name for edge labels
        Returns:
        the attribute name
      • setEdgeLabelAttributeName

        public void setEdgeLabelAttributeName​(java.lang.String edgeLabelAttributeName)
        Set the attribute name to use for edge labels.
        Parameters:
        edgeLabelAttributeName - the attribute name
      • getEdgeWeightAttributeName

        public java.lang.String getEdgeWeightAttributeName()
        Get the attribute name for edge weights
        Returns:
        the attribute name
      • setEdgeWeightAttributeName

        public void setEdgeWeightAttributeName​(java.lang.String edgeWeightAttributeName)
        Set the attribute name to use for edge weights.
        Parameters:
        edgeWeightAttributeName - the attribute name
      • exportGraph

        public void exportGraph​(Graph<V,​E> g,
                                java.io.Writer writer)
        Exports a graph in GraphML format.
        Specified by:
        exportGraph in interface GraphExporter<V,​E>
        Parameters:
        g - the graph
        writer - the writer to export the graph
        Throws:
        ExportException - in case any error occurs during export
      • writeHeader

        private void writeHeader​(javax.xml.transform.sax.TransformerHandler handler)
                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeGraphStart

        private void writeGraphStart​(javax.xml.transform.sax.TransformerHandler handler,
                                     Graph<V,​E> g)
                              throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeGraphEnd

        private void writeGraphEnd​(javax.xml.transform.sax.TransformerHandler handler)
                            throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeFooter

        private void writeFooter​(javax.xml.transform.sax.TransformerHandler handler)
                          throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeKeys

        private void writeKeys​(javax.xml.transform.sax.TransformerHandler handler)
                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeData

        private void writeData​(javax.xml.transform.sax.TransformerHandler handler,
                               java.lang.String key,
                               java.lang.String value)
                        throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeAttribute

        private void writeAttribute​(javax.xml.transform.sax.TransformerHandler handler,
                                    java.lang.String name,
                                    GraphMLExporter.AttributeDetails details)
                             throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeNodes

        private void writeNodes​(javax.xml.transform.sax.TransformerHandler handler,
                                Graph<V,​E> g)
                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • writeEdges

        private void writeEdges​(javax.xml.transform.sax.TransformerHandler handler,
                                Graph<V,​E> g)
                         throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException