From 6e4181efd328d893dfe2c41422236fff1494d514 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Tue, 19 Apr 2016 18:13:34 +0200
Subject: [PATCH] added a default export configuration

---
 .../util/graph/export/dot/DotExporter.java    |  2 +-
 .../dot/SimpleDotExportConfiguration.java     | 17 +++++++++
 .../graph/mapping/DirectPropertyMapper.java   | 35 +++++++++++++++++++
 3 files changed, 53 insertions(+), 1 deletion(-)
 create mode 100644 src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java
 create mode 100644 src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java

diff --git a/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java b/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java
index 842c526a..7ae2757b 100644
--- a/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java
+++ b/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java
@@ -16,7 +16,7 @@ import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
 public class DotExporter extends DotElementExporter {
 
 	public DotExporter(final Graph graph, final Writer writer) {
-		this(graph, writer, new DotExportConfiguration());
+		this(graph, writer, new SimpleDotExportConfiguration());
 	}
 
 	public DotExporter(final Graph graph, final Writer writer, final DotExportConfiguration configuration) {
diff --git a/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java b/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java
new file mode 100644
index 00000000..8551ad64
--- /dev/null
+++ b/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java
@@ -0,0 +1,17 @@
+package kieker.analysis.util.graph.export.dot;
+
+import kieker.analysis.util.graph.Edge;
+import kieker.analysis.util.graph.Vertex;
+import kieker.analysis.util.graph.mapping.DirectPropertyMapper;
+import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute;
+import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute;
+
+public class SimpleDotExportConfiguration extends DotExportConfiguration {
+
+	public SimpleDotExportConfiguration() {
+		super();
+		this.getNodeAttributes().put(DotNodeAttribute.LABEL, new DirectPropertyMapper<Vertex>("label"));
+		this.getEdgeAttributes().put(DotEdgeAttribute.LABEL, new DirectPropertyMapper<Edge>("label"));
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java b/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java
new file mode 100644
index 00000000..bb7a257f
--- /dev/null
+++ b/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java
@@ -0,0 +1,35 @@
+package kieker.analysis.util.graph.mapping;
+
+import java.util.function.Function;
+
+import kieker.analysis.util.graph.Element;
+
+/**
+ * This function maps a graph element by a passed property key to the
+ * corresponding property value and returns it as string.
+ *
+ * @author Sören Henning
+ *
+ */
+public class DirectPropertyMapper<T extends Element> implements Function<T, String> {
+
+	private String propertyKey;
+
+	public DirectPropertyMapper(final String propertyKey) {
+		this.propertyKey = propertyKey;
+	}
+
+	public String getPropertyKey() {
+		return propertyKey;
+	}
+
+	public void setPropertyKey(final String propertyKey) {
+		this.propertyKey = propertyKey;
+	}
+
+	@Override
+	public String apply(final T element) {
+		return element.getProperty(propertyKey);
+	}
+
+}
-- 
GitLab