V - the graph vertex typeE - the graph edge typepublic class DIMACSImporter<V,E> extends Object implements GraphImporter<V,E>
 See DIMACSFormat for a description of all the supported DIMACS formats.
 
In summary, one of the most common DIMACS formats was used in the 2nd DIMACS challenge and follows the following structure:
 
 DIMACS G {
    c <comments> ignored during parsing of the graph
    p edge <number of nodes> <number of edges>
    e <edge source 1> <edge target 1>
    e <edge source 2> <edge target 2>
    e <edge source 3> <edge target 3>
    e <edge source 4> <edge target 4>
    ...
 }
 
 
 
 Although not specified directly in the DIMACS format documentation, this implementation also
 allows for the a weighted variant:
 
 
  
 e <edge source 1> <edge target 1> <edge_weight> 
 
 
 
 Note: the current implementation does not fully implement the DIMACS specifications! Special
 (rarely used) fields specified as 'Optional Descriptors' are currently not supported (ignored).| Modifier and Type | Field and Description | 
|---|---|
| protected EdgeProvider<V,E> | edgeProviderConstructs new edges | 
| protected ComponentUpdater<Graph<V,E>> | graphUpdaterUpdates graph properties | 
| protected VertexProvider<V> | vertexProviderConstructs new vertices | 
| protected ComponentUpdater<V> | vertexUpdaterUpdates already constructed vertices | 
| Constructor and Description | 
|---|
| DIMACSImporter(VertexProvider<V> vertexProvider,
              EdgeProvider<V,E> edgeProvider)Construct a new DIMACSImporter | 
| DIMACSImporter(VertexProvider<V> vertexProvider,
              EdgeProvider<V,E> edgeProvider,
              double defaultWeight)Construct a new DIMACSImporter | 
| 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, waitimportGraph, importGraphprotected VertexProvider<V> vertexProvider
protected EdgeProvider<V,E> edgeProvider
protected ComponentUpdater<V> vertexUpdater
protected ComponentUpdater<Graph<V,E>> graphUpdater
public DIMACSImporter(VertexProvider<V> vertexProvider, EdgeProvider<V,E> edgeProvider, double defaultWeight)
vertexProvider - provider for the generation of vertices. Must not be null.edgeProvider - provider for the generation of edges. Must not be null.defaultWeight - default edge weightpublic DIMACSImporter(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 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 © 2017. All rights reserved.