V
- the vertex typeE
- the edge typepublic class GmlImporter<V,E> extends Object implements GraphImporter<V,E>
For a description of the format see http://www.infosun.fmi.uni-passau.de/Graphlet/GML/.
Below is small example of a graph in GML format.
graph [ node [ id 1 ] node [ id 2 label "Node 2 has an optional label" ] node [ id 3 ] edge [ source 1 target 2 weight 2.0 label "Edge between 1 and 2" ] edge [ source 2 target 3 weight 3.0 label "Edge between 2 and 3" ] ]
In case the graph is weighted then the importer also reads edge weights. Otherwise edge weights are ignored. The importer also supports reading additional string attributes such as label or custom user attributes. String attributes are unescaped as if they are Java strings.
The parser completely ignores elements from the input that are not related to vertices or edges of the graph. Moreover, complicated nested structures are simply returned as a whole. For example, in the following graph
graph [ node [ id 1 ] node [ id 2 ] edge [ source 1 target 2 points [ x 1.0 y 2.0 ] ] ]the points attribute of the edge is returned as a string containing "[ x 1.0 y 2.0 ]".
Modifier and Type | Field and Description |
---|---|
protected EdgeProvider<V,E> |
edgeProvider
Constructs new edges
|
protected ComponentUpdater<Graph<V,E>> |
graphUpdater
Updates graph properties
|
protected VertexProvider<V> |
vertexProvider
Constructs new vertices
|
protected ComponentUpdater<V> |
vertexUpdater
Updates already constructed vertices
|
Constructor and Description |
---|
GmlImporter(VertexProvider<V> vertexProvider,
EdgeProvider<V,E> edgeProvider)
Constructs a new importer.
|
Modifier and Type | Method and Description |
---|---|
EdgeProvider<V,E> |
getEdgeProvider()
Get the edge provider
|
ComponentUpdater<Graph<V,E>> |
getGraphUpdater()
Get the graph updater.
|
VertexProvider<V> |
getVertexProvider()
Get the vertex provider
|
ComponentUpdater<V> |
getVertexUpdater()
Get the vertex updater
|
void |
importGraph(Graph<V,E> graph,
Reader input)
Import a graph.
|
void |
setEdgeProvider(EdgeProvider<V,E> edgeProvider)
Set the edge provider.
|
void |
setGraphUpdater(ComponentUpdater<Graph<V,E>> graphUpdater)
Set the graph updater.
|
void |
setVertexProvider(VertexProvider<V> vertexProvider)
Set the vertex provider
|
void |
setVertexUpdater(ComponentUpdater<V> vertexUpdater)
Set the vertex updater.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
importGraph, importGraph
protected VertexProvider<V> vertexProvider
protected EdgeProvider<V,E> edgeProvider
protected ComponentUpdater<V> vertexUpdater
protected ComponentUpdater<Graph<V,E>> graphUpdater
public GmlImporter(VertexProvider<V> vertexProvider, EdgeProvider<V,E> edgeProvider)
vertexProvider
- provider for the generation of vertices. Must not be null.edgeProvider
- provider for the generation of edges. Must not be null.public void importGraph(Graph<V,E> graph, Reader input) throws ImportException
The provided graph must be able to support the features of the graph that is read. For example if the gml file contains self-loops then the graph provided must also support self-loops. The same for multiple edges.
If the provided graph is a weighted graph, the importer also reads edge weights. Otherwise edge weights are ignored.
importGraph
in interface GraphImporter<V,E>
graph
- the output graphinput
- the input readerImportException
- in case an error occurs, such as I/O or parse errorpublic VertexProvider<V> getVertexProvider()
public void setVertexProvider(VertexProvider<V> vertexProvider)
vertexProvider
- the new vertex provider. Must not be null.public EdgeProvider<V,E> getEdgeProvider()
public void setEdgeProvider(EdgeProvider<V,E> edgeProvider)
edgeProvider
- the new edge provider. Must not be null.public ComponentUpdater<V> getVertexUpdater()
public void setVertexUpdater(ComponentUpdater<V> vertexUpdater)
vertexUpdater
- the new vertex updater. Must not be null.public ComponentUpdater<Graph<V,E>> getGraphUpdater()
public void setGraphUpdater(ComponentUpdater<Graph<V,E>> graphUpdater)
graphUpdater
- the new graph updater. Must not be null.Copyright © 2018. All rights reserved.