From e32c258944023a25254e1b39f0d9fe1f39dc2513 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Thu, 25 Feb 2016 09:03:40 +0100
Subject: [PATCH] add Blueprints exporter

---
 .../analysis/graph/BlueprintsExporter.java    | 56 +++++++++++++++++++
 .../kieker/analysis/graph/GraphTester.java    |  4 +-
 2 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/kieker/analysis/graph/BlueprintsExporter.java

diff --git a/src/main/java/kieker/analysis/graph/BlueprintsExporter.java b/src/main/java/kieker/analysis/graph/BlueprintsExporter.java
new file mode 100644
index 00000000..6d630172
--- /dev/null
+++ b/src/main/java/kieker/analysis/graph/BlueprintsExporter.java
@@ -0,0 +1,56 @@
+package kieker.analysis.graph;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
+
+public class BlueprintsExporter {
+
+	private final Graph graph;
+	private final com.tinkerpop.blueprints.Graph exportGraph = new TinkerGraph();
+	private final Map<Vertex, com.tinkerpop.blueprints.Vertex> mappedVertices = new HashMap<>();
+
+	public BlueprintsExporter(final Graph graph) {
+		this.graph = graph;
+	}
+
+	public com.tinkerpop.blueprints.Graph exportGraph() {
+
+		mapVertices();
+		mapEdges();
+
+		return exportGraph;
+
+	}
+
+	private void mapVertices() {
+
+		for (final Vertex vertex : graph.getVertices()) {
+			com.tinkerpop.blueprints.Vertex mappedVertex = exportGraph.addVertex(vertex.getId());
+			mappedVertices.put(vertex, mappedVertex);
+			for (final String propertyKey : vertex.getPropertyKeys()) {
+				mappedVertex.setProperty(propertyKey, vertex.getProperty(propertyKey));
+			}
+		}
+
+	}
+
+	private void mapEdges() {
+
+		for (final Edge edge : graph.getEdges()) {
+			final com.tinkerpop.blueprints.Vertex mappedInVertex = mappedVertices.get(edge.getVertex(Direction.IN));
+			final com.tinkerpop.blueprints.Vertex mappedOutVertex = mappedVertices.get(edge.getVertex(Direction.OUT));
+			String label = edge.getProperty("label");
+			if (label == null) {
+				label = "";
+			}
+			com.tinkerpop.blueprints.Edge mappedEdge = exportGraph.addEdge(edge.getId(), mappedOutVertex, mappedInVertex, label);
+			for (final String propertyKey : edge.getPropertyKeys()) {
+				mappedEdge.setProperty(propertyKey, edge.getProperty(propertyKey));
+			}
+		}
+
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java
index 8e7f719d..b325c87b 100644
--- a/src/main/java/kieker/analysis/graph/GraphTester.java
+++ b/src/main/java/kieker/analysis/graph/GraphTester.java
@@ -76,8 +76,8 @@ public class GraphTester {
 		// node2.addEdgeTo(node11);
 
 		// Export to Blueprints
-		// BlueprintsExporter blueprintsExporter = new BlueprintsExporter(graph);
-		// System.out.println(blueprintsExporter.exportGraph());
+		BlueprintsExporter blueprintsExporter = new BlueprintsExporter(graph);
+		System.out.println(blueprintsExporter.exportGraph());
 
 	}
 
-- 
GitLab