From aa2611ceaddd90b902be77db4df6ba269b5f3dad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Sat, 26 Mar 2016 17:07:25 +0100
Subject: [PATCH] added mapping for properties to GraphML

---
 .../kieker/analysis/graph/GraphTester.java    | 24 +++++++++++++++----
 .../export/graphml/GraphTypeTransformer.java  | 19 +++++++++++++--
 2 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java
index 222d92c3..1e3afc6c 100644
--- a/src/main/java/kieker/analysis/graph/GraphTester.java
+++ b/src/main/java/kieker/analysis/graph/GraphTester.java
@@ -1,6 +1,8 @@
 package kieker.analysis.graph;
 
-import kieker.analysis.graph.export.dot.DotExporter;
+import java.util.ArrayList;
+
+import kieker.analysis.graph.export.graphml.GraphMLExporter;
 import kieker.analysis.graph.impl.GraphImpl;
 
 public class GraphTester {
@@ -19,6 +21,7 @@ public class GraphTester {
 
 		Edge edge12 = node1.addEdge(node2);
 		Edge edge11 = node1.addEdge(node1);
+		edge11.setProperty("label", "label-LABELNAME");
 
 		Edge edge23 = node2.addEdge("e23", node3);
 
@@ -80,11 +83,22 @@ public class GraphTester {
 			System.out.println(edge.getId());
 		}
 
-		// GraphMLExporter graphMLExporter = new GraphMLExporter();
-		// graphMLExporter.export(graph, System.out);
+		// Add some labels for nodes
+		for (Vertex vertex : graph.getVertices()) {
+			vertex.setProperty("label", "-[label]-" + vertex.getId().toString());
+		}
+
+		// Add some stuff for nodes
+		for (Vertex vertex : graph.getVertices()) {
+			vertex.setProperty("abcprop", 2016);
+			vertex.setProperty("xyzprop", new ArrayList<Boolean>());
+		}
+
+		GraphMLExporter graphMLExporter = new GraphMLExporter();
+		graphMLExporter.export(graph, System.out);
 
-		DotExporter dotExporter = new DotExporter();
-		dotExporter.export(graph, System.out);
+		// DotExporter dotExporter = new DotExporter();
+		// dotExporter.export(graph, System.out);
 
 	}
 
diff --git a/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java b/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
index c601948f..02420b50 100644
--- a/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
+++ b/src/main/java/kieker/analysis/graph/export/graphml/GraphTypeTransformer.java
@@ -1,5 +1,8 @@
 package kieker.analysis.graph.export.graphml;
 
+import java.util.List;
+
+import org.graphdrawing.graphml.DataType;
 import org.graphdrawing.graphml.EdgeType;
 import org.graphdrawing.graphml.GraphEdgedefaultType;
 import org.graphdrawing.graphml.GraphType;
@@ -27,7 +30,13 @@ public class GraphTypeTransformer extends AbstractTransformer<GraphType> {
 
 		NodeType nodeType = new NodeType();
 		nodeType.setId(vertex.getId().toString());
-		// TODO Map Properties
+		List<Object> dataOrPort = nodeType.getDataOrPort();
+		for (final String propertyKey : vertex.getPropertyKeys()) {
+			DataType dataType = new DataType();
+			dataType.setKey(propertyKey);
+			dataType.setContent(vertex.getProperty(propertyKey).toString());
+			dataOrPort.add(dataType);
+		}
 
 		if (vertex.hasChildGraph()) {
 			Graph childGraph = vertex.getChildGraph();
@@ -45,8 +54,14 @@ public class GraphTypeTransformer extends AbstractTransformer<GraphType> {
 		edgeType.setId(edge.getId().toString());
 		edgeType.setSource(edge.getVertex(Direction.OUT).getId().toString());
 		edgeType.setTarget(edge.getVertex(Direction.IN).getId().toString());
+		List<DataType> data = edgeType.getData();
+		for (final String propertyKey : edge.getPropertyKeys()) {
+			DataType dataType = new DataType();
+			dataType.setKey(propertyKey);
+			dataType.setContent(edge.getProperty(propertyKey).toString());
+			data.add(dataType);
+		}
 
-		// TODO Map Properties
 		graphType.getDataOrNodeOrEdge().add(edgeType);
 	}
 
-- 
GitLab