diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java index e820174396c1fa018e9a328c4d3244caa642de9d..f5eab687cd7ecc4afd460823207e52d304f94953 100644 --- a/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java +++ b/src/main/java/kieker/analysis/trace/graphoutput/DotGraphWriter.java @@ -6,6 +6,8 @@ import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; +import java.util.HashMap; +import java.util.Map; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.blueprints.Edge; @@ -13,7 +15,7 @@ import com.tinkerpop.blueprints.Graph; import com.tinkerpop.blueprints.Vertex; import kieker.analysis.trace.traversal.NamedGraph; -import kieker.tools.traceAnalysis.filter.visualization.util.dot.DotFactory; +import kieker.analysis.util.DotBuilder; import teetime.framework.AbstractConsumerStage; @@ -39,39 +41,25 @@ public class DotGraphWriter extends AbstractConsumerStage<NamedGraph> { private String createDotGraph(final Graph graph) { - StringBuilder dotGraph = new StringBuilder(); + DotBuilder dotGraph = new DotBuilder(); + + Map<String, String> nodeProperties = new HashMap<>(); + nodeProperties.put("shape", "none"); + + dotGraph.setDefaultNodeProperties(nodeProperties); - dotGraph.append(createDotGraphHead()); for (Vertex vertex : graph.getVertices()) { - dotGraph.append(createDotGraphVertex(vertex)); + String label = vertex.getProperty("label"); + dotGraph.addNode(String.valueOf(vertex.getId()), label); } + for (Edge edge : graph.getEdges()) { - dotGraph.append(createDotGraphEdge(edge)); + String source = edge.getVertex(Direction.OUT).getId().toString(); + String target = edge.getVertex(Direction.IN).getId().toString(); + dotGraph.addEdge(source, target, edge.getLabel()); } - dotGraph.append(createDotGraphFoot()); - - return dotGraph.toString(); - } - - private String createDotGraphHead() { - return "digraph g {"; - } - - private String createDotGraphFoot() { - return "}"; - } - - // TODO Using DotFactory? - private String createDotGraphVertex(final Vertex vertex) { - return DotFactory.createNode("", String.valueOf(vertex.getId()), vertex.getProperty("label"), - null, null, null, null, null, 0, null, null, null).toString(); - } - // TODO Using DotFactory? - private String createDotGraphEdge(final Edge edge) { - String source = edge.getVertex(Direction.OUT).getId().toString(); - String target = edge.getVertex(Direction.IN).getId().toString(); - return DotFactory.createConnection("", source, target, 0, 0); + return dotGraph.get(); } private void writeDotGraphFile(final String dotGraph, final String fileName) throws IOException { diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java index d9e3aab900fbacea42a4db4dbdadcb19e9eb925a..17966a748b5dcdf748f71e2ec6ef02bb418b4ae4 100644 --- a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java +++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java @@ -27,7 +27,8 @@ public class AggrTraceToGraphTransformer extends AbstractTraceToGraphTransformer return null; } - return graph.addEdge(null, parentVertex, thisVertex, ""); + // TODO Add label + return graph.addEdge(null, parentVertex, thisVertex, "ID"); } } diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java index 83abd319427d66dbf63e6f731b46f44509171fd7..01f1ad35e133e72b5776d9e96f36d40194d897ee 100644 --- a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java +++ b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java @@ -26,7 +26,8 @@ public class TraceToGraphTransformer extends AbstractTraceToGraphTransformer<Ope return null; } - return graph.addEdge(null, parentVertex, thisVertex, ""); + // TODO Add label + return graph.addEdge(null, parentVertex, thisVertex, "ID"); } }