Package org.jgrapht.nio.dimacs
Class DIMACSImporter<V,E>
- java.lang.Object
-
- org.jgrapht.nio.BaseEventDrivenImporter<V,E>
-
- org.jgrapht.nio.dimacs.DIMACSImporter<V,E>
-
- Type Parameters:
V- the graph vertex typeE- the graph edge type
- All Implemented Interfaces:
GraphImporter<V,E>
public class DIMACSImporter<V,E> extends BaseEventDrivenImporter<V,E> implements GraphImporter<V,E>
Imports a graph specified in DIMACS format.See
DIMACSFormatfor 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:
Although not specified directly in the DIMACS format documentation, this implementation also allows for the a weighted variant: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> ... }
Note: the current implementation does not fully implement the DIMACS specifications! Special (rarely used) fields specified as 'Optional Descriptors' are currently not supported (ignored).e <edge source 1> <edge target 1> <edge_weight>- Author:
- Michael Behrisch (adaptation of GraphReader class), Joris Kinable, Dimitrios Michail
-
-
Constructor Summary
Constructors Constructor Description DIMACSImporter()Construct a new DIMACSImporterDIMACSImporter(double defaultWeight)Construct a new DIMACSImporter
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidimportGraph(Graph<V,E> graph, Reader input)Import a graph.-
Methods inherited from class org.jgrapht.nio.BaseEventDrivenImporter
addEdgeAttributeConsumer, addEdgeConsumer, addEdgeCountConsumer, addGraphAttributeConsumer, addImportEventConsumer, addVertexAttributeConsumer, addVertexConsumer, addVertexCountConsumer, notifyEdge, notifyEdgeAttribute, notifyEdgeCount, notifyGraphAttribute, notifyImportEvent, notifyVertex, notifyVertexAttribute, notifyVertexCount, removeEdgeAttributeConsumer, removeEdgeConsumer, removeEdgeCountConsumer, removeGraphAttributeConsumer, removeImportEventConsumer, removeVertexAttributeConsumer, removeVertexConsumer, removeVertexCountConsumer
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jgrapht.nio.GraphImporter
importGraph, importGraph
-
-
-
-
Method Detail
-
importGraph
public void importGraph(Graph<V,E> graph, Reader input) throws ImportException
Import a graph.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.
- Specified by:
importGraphin interfaceGraphImporter<V,E>- Parameters:
graph- the output graphinput- the input reader- Throws:
ImportException- in case an error occurs, such as I/O or parse error
-
-