Вот два примера экспорта графика в формате DOT с использованием DOTExporter
. В первом примере vertexIDProvider
не предоставляется. В результате экспортер не знает, как назвать ваши вершины, поэтому он просто присваивает каждой вершине уникальный номер. Во втором примере я предоставляю vertexIDProvider
. vertexIDProvider
- это Function<V,String> vertexIdProvider
, который отображает вершину в строку. Во втором примере я просто отображаю вершину в ее строковом представлении. Наконец, в примерах я использую простой Writer
. В вашей реализации вы можете использовать FileWriter
для записи результата в реальный файл.
//Create a graph with some vertices and edges
Graph<String, DefaultEdge> graph=new SimpleGraph<>(DefaultEdge.class);
Graphs.addAllVertices(graph, Arrays.asList("v1", "v2", "v3", "v4"));
graph.addEdge("v1", "v2");
graph.addEdge("v2", "v3");
graph.addEdge("v3", "v4");
graph.addEdge("v4", "v1");
//Create the exporter (without ID provider)
DOTExporter<String, DefaultEdge> exporter=new DOTExporter<>();
Writer writer = new StringWriter();
exporter.exportGraph(graph, writer);
System.out.println(writer.toString());
//Create the exporter (with ID provider)
DOTExporter<String, DefaultEdge> exporter2=new DOTExporter<>(v -> v.toString());
writer = new StringWriter();
exporter2.exportGraph(graph, writer);
System.out.println(writer.toString());
Вывод:
strict graph G {
1;
2;
3;
4;
1 -- 2;
2 -- 3;
3 -- 4;
4 -- 1;
}
strict graph G {
v1;
v2;
v3;
v4;
v1 -- v2;
v2 -- v3;
v3 -- v4;
v4 -- v1;
}
Более подробный пример можно найти в пользовательской документации . Больше примеров можно найти в DOTExporterTest класс.