From 50a2ab0446165ce7d0d600c62b9953ce775fa5c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Thu, 7 Apr 2016 16:23:50 +0200
Subject: [PATCH] add dot trace styling

---
 .../analysis/TraceAnalysisConfiguration.java  | 10 +++++--
 .../trace/graphoutput/DotTraceStyleStage.java | 26 +++++++++++++++++++
 2 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java

diff --git a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
index 23cdbc8d..e6ede17b 100644
--- a/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
+++ b/src/main/java/kieker/analysis/TraceAnalysisConfiguration.java
@@ -74,19 +74,23 @@ public class TraceAnalysisConfiguration extends Configuration {
 		String graphFilesOutputDir = "example/event monitoring log/output"; // TODO Temp hard coded
 
 		TraceTraverserStage traceTraverserStage = new TraceTraverserStage();
-		final Distributor<Graph> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());
+		final Distributor<Graph> graphDistributor = new Distributor<>(new CopyByReferenceStrategy());// TODO use clone
 		GraphMLFileWriterComposite graphMLFileWriterComposite = new GraphMLFileWriterComposite(graphFilesOutputDir);
+		// DotTraceStyleStage dotTraceStyleStage = new DotTraceStyleStage();
 		DotFileWriterStage dotFileWriterStage = new DotFileWriterStage(graphFilesOutputDir);
 
 		super.connectPorts(distributor.getNewOutputPort(), traceTraverserStage.getInputPort());
 		super.connectPorts(traceTraverserStage.getOutputPort(), graphDistributor.getInputPort());
 		super.connectPorts(graphDistributor.getNewOutputPort(), graphMLFileWriterComposite.getInputPort());
 		super.connectPorts(graphDistributor.getNewOutputPort(), dotFileWriterStage.getInputPort());
+		// super.connectPorts(graphDistributor.getNewOutputPort(), dotTraceStyleStage.getInputPort());
+		// super.connectPorts(dotTraceStyleStage.getOutputPort(), dotFileWriterStage.getInputPort());
 
 		final Distributor<AggregatedTrace> aggregatedTraceDistributor = new Distributor<>(new CopyByReferenceStrategy());
 		AggrTraceTraverserStage aggrTraceTraverser = new AggrTraceTraverserStage();
-		final Distributor<Graph> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy());
+		final Distributor<Graph> graphDistributor2 = new Distributor<>(new CopyByReferenceStrategy()); // TODO use clone
 		GraphMLFileWriterComposite graphMLFileWriterComposite2 = new GraphMLFileWriterComposite(graphFilesOutputDir);
+		// DotTraceStyleStage dotAggrTraceStyleStage = new DotTraceStyleStage();
 		DotFileWriterStage dotFileWriterStage2 = new DotFileWriterStage(graphFilesOutputDir);
 
 		super.connectPorts(aggregation.getOutputPort(), aggregatedTraceDistributor.getInputPort());
@@ -95,6 +99,8 @@ public class TraceAnalysisConfiguration extends Configuration {
 		super.connectPorts(aggrTraceTraverser.getOutputPort(), graphDistributor2.getInputPort());
 		super.connectPorts(graphDistributor2.getNewOutputPort(), graphMLFileWriterComposite2.getInputPort());
 		super.connectPorts(graphDistributor2.getNewOutputPort(), dotFileWriterStage2.getInputPort());
+		// super.connectPorts(graphDistributor2.getNewOutputPort(), dotAggrTraceStyleStage.getInputPort());
+		// super.connectPorts(dotAggrTraceStyleStage.getOutputPort(), dotFileWriterStage2.getInputPort());
 
 		// DependencyCreatorStage dependencyCreatorStage = new DependencyCreatorStage();
 		// DependencyStatisticsDecoratorStage dependencyStatisticsDecoratorStage = new DependencyStatisticsDecoratorStage();
diff --git a/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java b/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java
new file mode 100644
index 00000000..fb1fe3f6
--- /dev/null
+++ b/src/main/java/kieker/analysis/trace/graphoutput/DotTraceStyleStage.java
@@ -0,0 +1,26 @@
+package kieker.analysis.trace.graphoutput;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import kieker.analysis.util.graph.Graph;
+import kieker.analysis.util.graph.export.dot.DotExportPropertyTokens;
+
+import teetime.stage.basic.AbstractTransformation;
+
+public class DotTraceStyleStage extends AbstractTransformation<Graph, Graph> {
+
+	private final Map<String, String> nodeStyling = new HashMap<>();
+
+	public DotTraceStyleStage() {
+		super();
+		nodeStyling.put("shape", "none");
+	}
+
+	@Override
+	protected void execute(final Graph graph) {
+		graph.setProperty(DotExportPropertyTokens.DEFAULT_NODE_PROPERTIES, nodeStyling);
+		this.getOutputPort().send(graph);
+	}
+
+}
-- 
GitLab