diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java index cc5f78aedd5509d215957620f71d152d7ca50d07..222d92c365804b71a20f2a4d4cf05c3764bc9150 100644 --- a/src/main/java/kieker/analysis/graph/GraphTester.java +++ b/src/main/java/kieker/analysis/graph/GraphTester.java @@ -1,6 +1,6 @@ package kieker.analysis.graph; -import kieker.analysis.graph.export.graphml.GraphMLExporter; +import kieker.analysis.graph.export.dot.DotExporter; import kieker.analysis.graph.impl.GraphImpl; public class GraphTester { @@ -80,34 +80,11 @@ public class GraphTester { System.out.println(edge.getId()); } - GraphMLExporter graphMLExporter = new GraphMLExporter(); - - graphMLExporter.export(graph, System.out); - - // JAXB Test - - // - // GraphmlType graphmlType = new GraphmlType(); - // graphmlType.getKey().add(new KeyType()); - // GraphType graphType = new GraphType(); - // graphType.getDataOrNodeOrEdge().add(new NodeType()); - // graphType.getDataOrNodeOrEdge().add(new NodeType()); - // graphType.getDataOrNodeOrEdge().add(new EdgeType()); - // graphmlType.getGraphOrData().add(graphType); - // - // try { - // JAXBContext context = JAXBContext.newInstance(GraphmlType.class); - // Marshaller m = context.createMarshaller(); - // m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); - // - // ObjectFactory objectFactory = new ObjectFactory(); - // JAXBElement<GraphmlType> element = objectFactory.createGraphml(graphmlType); - // - // m.marshal(element, System.out); - // } catch (JAXBException e) { - // // TODO Auto-generated catch block - // e.printStackTrace(); - // } + // GraphMLExporter graphMLExporter = new GraphMLExporter(); + // graphMLExporter.export(graph, System.out); + + DotExporter dotExporter = new DotExporter(); + dotExporter.export(graph, System.out); } diff --git a/src/main/java/kieker/analysis/graph/export/dot/DotExporter.java b/src/main/java/kieker/analysis/graph/export/dot/DotExporter.java index 315199883f2b304f708e78ec439dcd83f81fb7e8..17de4122349ce83bab782e981baa4a34e369c0e5 100644 --- a/src/main/java/kieker/analysis/graph/export/dot/DotExporter.java +++ b/src/main/java/kieker/analysis/graph/export/dot/DotExporter.java @@ -1,6 +1,7 @@ package kieker.analysis.graph.export.dot; import java.io.OutputStream; +import java.io.PrintWriter; import kieker.analysis.graph.Graph; @@ -12,6 +13,10 @@ public class DotExporter { // TODO Receiving a dot object would be (maybe) better String dotString = graphTransformer.transform(); + PrintWriter printWriter = new PrintWriter(outputStream); + printWriter.write(dotString); + printWriter.close(); + } } diff --git a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java index edea3a08e5b6f089a3d53f47d5c4fa1b7e26756e..bb54c4711b0d3b53bbb664b7f24723aea6ea4df5 100644 --- a/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java +++ b/src/main/java/kieker/analysis/graph/export/dot/GraphTransformer.java @@ -25,10 +25,9 @@ public class GraphTransformer extends AbstractTransformer<String> { protected void mapVertex(final Vertex vertex) { if (vertex.hasChildGraph()) { Graph childGraph = vertex.getChildGraph(); - GraphTransformer graphTransformer = new GraphTransformer(childGraph); + GraphTransformer graphTransformer = new GraphTransformer(childGraph, false); String childGraphString = graphTransformer.transform(); - // TODO We need a subgraph cluster_XYZ { ... } - // TODO dotBuilder.addCluster(); + dotBuilder.addSubgraph(childGraphString); } else { dotBuilder.addNode(vertex.getId().toString()); // TODO Add style, label, etc diff --git a/src/main/java/kieker/analysis/util/DotBuilder.java b/src/main/java/kieker/analysis/util/DotBuilder.java index 32749a5c80241fa9e3a770bf568b62ea46664d5d..ca284f0c8ee82f706e2e7ea834d14d84f3c24c31 100644 --- a/src/main/java/kieker/analysis/util/DotBuilder.java +++ b/src/main/java/kieker/analysis/util/DotBuilder.java @@ -104,6 +104,10 @@ public class DotBuilder { addElement('"' + source + '"' + " -> " + '"' + target + '"', extendEdgeProperties(properties)); } + public void addSubgraph(final String subgraph) { + body.append(subgraph + '\n'); + } + private void addElement(final String element, final Map<String, String> properties) { body.append(element); if (properties != null && !properties.isEmpty()) {