From 1bd122eb61124a374aa064cb4e0229c21fd710cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Tue, 17 Nov 2015 14:41:08 +0100
Subject: [PATCH] worked on #15

---
 .../trace/traversal/AggrTrace2Blueprint.java  | 41 -------------------
 .../AggrTraceToGraphTransformer.java          | 32 +++++++++++++++
 .../traversal/AggrTraceTraverserStage.java    |  2 +-
 .../trace/traversal/TraceToBlueprint.java     | 41 -------------------
 .../traversal/TraceToGraphTransformer.java    | 32 +++++++++++++++
 .../trace/traversal/TraceTraverserStage.java  |  6 +--
 .../AbstractOperationCall.java                |  2 +
 7 files changed, 70 insertions(+), 86 deletions(-)
 delete mode 100644 src/main/java/kieker/analysis/trace/traversal/AggrTrace2Blueprint.java
 create mode 100644 src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
 delete mode 100644 src/main/java/kieker/analysis/trace/traversal/TraceToBlueprint.java
 create mode 100644 src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java

diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTrace2Blueprint.java b/src/main/java/kieker/analysis/trace/traversal/AggrTrace2Blueprint.java
deleted file mode 100644
index c7a4306a..00000000
--- a/src/main/java/kieker/analysis/trace/traversal/AggrTrace2Blueprint.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
-
-import kieker.analysis.traceanalysisdomain.AggregatedOperationCall;
-
-public class AggrTrace2Blueprint extends OperationCallVisitor<AggregatedOperationCall> {
-
-	private final Graph graph;
-
-	public AggrTrace2Blueprint() {
-		super();
-		this.graph = new TinkerGraph();
-	}
-
-	@Override
-	public void visit(final AggregatedOperationCall operationCall) {
-
-		Vertex vertex = graph.addVertex(operationCall.hashCode());
-
-		vertex.setProperty("label", operationCall.getOperation());
-		// TODO maybe more properties?
-
-		AggregatedOperationCall parentCall = operationCall.getParent();
-
-		if (parentCall != null) {
-			Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
-			if (parentVertex != null) {
-				graph.addEdge(null, parentVertex, vertex, "");
-			}
-		}
-
-	}
-
-	public Graph getGraph() {
-		return graph;
-	}
-
-}
diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
new file mode 100644
index 00000000..4b7b6603
--- /dev/null
+++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceToGraphTransformer.java
@@ -0,0 +1,32 @@
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.traceanalysisdomain.AggregatedOperationCall;
+
+public class AggrTraceToGraphTransformer extends AbstractTraceToGraphTransformer<AggregatedOperationCall> {
+
+	@Override
+	protected Vertex addVertex(final AggregatedOperationCall operationCall) {
+		Vertex vertex = graph.addVertex(operationCall.hashCode());
+
+		vertex.setProperty("label", operationCall.getOperation());
+
+		return vertex;
+	}
+
+	@Override
+	protected Edge addEdge(final AggregatedOperationCall operationCall, final AggregatedOperationCall parentOperationCall) {
+
+		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
+		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
+
+		if (thisVertex == null || parentVertex == null) {
+			return null;
+		}
+
+		return graph.addEdge(null, parentVertex, thisVertex, "");
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java b/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
index 61247db1..9cb2f91b 100644
--- a/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
+++ b/src/main/java/kieker/analysis/trace/traversal/AggrTraceTraverserStage.java
@@ -10,7 +10,7 @@ public class AggrTraceTraverserStage extends AbstractTransformation<AggregatedTr
 	@Override
 	protected void execute(final AggregatedTrace trace) {
 
-		AggrTrace2Blueprint aggrTrace2Blueprint = new AggrTrace2Blueprint();
+		AggrTraceToGraphTransformer aggrTrace2Blueprint = new AggrTraceToGraphTransformer();
 
 		TraceTraverser<AggregatedTrace, AggregatedOperationCall> traverser = new TraceTraverser<>(aggrTrace2Blueprint);
 
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceToBlueprint.java b/src/main/java/kieker/analysis/trace/traversal/TraceToBlueprint.java
deleted file mode 100644
index 526e3b7e..00000000
--- a/src/main/java/kieker/analysis/trace/traversal/TraceToBlueprint.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package kieker.analysis.trace.traversal;
-
-import com.tinkerpop.blueprints.Graph;
-import com.tinkerpop.blueprints.Vertex;
-import com.tinkerpop.blueprints.impls.tg.TinkerGraph;
-
-import kieker.analysis.traceanalysisdomain.OperationCall;
-
-public class TraceToBlueprint extends OperationCallVisitor<OperationCall> {
-
-	private final Graph graph;
-
-	public TraceToBlueprint() {
-		super();
-		this.graph = new TinkerGraph();
-	}
-
-	@Override
-	public void visit(final OperationCall operationCall) {
-
-		Vertex vertex = graph.addVertex(operationCall.hashCode());
-
-		vertex.setProperty("label", operationCall.getOperation());
-		// TODO maybe more properties?
-
-		OperationCall parentCall = operationCall.getParent();
-
-		if (parentCall != null) {
-			Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
-			if (parentVertex != null) {
-				graph.addEdge(null, parentVertex, vertex, "");
-			}
-		}
-
-	}
-
-	public Graph getGraph() {
-		return graph;
-	}
-
-}
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
new file mode 100644
index 00000000..83abd319
--- /dev/null
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceToGraphTransformer.java
@@ -0,0 +1,32 @@
+package kieker.analysis.trace.traversal;
+
+import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.Vertex;
+
+import kieker.analysis.traceanalysisdomain.OperationCall;
+
+public class TraceToGraphTransformer extends AbstractTraceToGraphTransformer<OperationCall> {
+
+	@Override
+	protected Vertex addVertex(final OperationCall operationCall) {
+		Vertex vertex = graph.addVertex(operationCall.hashCode());
+
+		vertex.setProperty("label", operationCall.getOperation());
+
+		return vertex;
+	}
+
+	@Override
+	protected Edge addEdge(final OperationCall operationCall, final OperationCall parentOperationCall) {
+
+		Vertex thisVertex = graph.getVertex(operationCall.hashCode());
+		Vertex parentVertex = graph.getVertex(operationCall.getParent().hashCode());
+
+		if (thisVertex == null || parentVertex == null) {
+			return null;
+		}
+
+		return graph.addEdge(null, parentVertex, thisVertex, "");
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java b/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
index 950a9a04..dd1e2c55 100644
--- a/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
+++ b/src/main/java/kieker/analysis/trace/traversal/TraceTraverserStage.java
@@ -10,15 +10,15 @@ public class TraceTraverserStage extends AbstractTransformation<Trace, NamedGrap
 	@Override
 	protected void execute(final Trace trace) {
 
-		TraceToBlueprint traceToBlueprint = new TraceToBlueprint();
+		TraceToGraphTransformer traceToGraph = new TraceToGraphTransformer();
 
-		TraceTraverser<Trace, OperationCall> traverser = new TraceTraverser<>(traceToBlueprint);
+		TraceTraverser<Trace, OperationCall> traverser = new TraceTraverser<>(traceToGraph);
 
 		traverser.traverse(trace);
 
 		String name = String.valueOf(trace.hashCode());
 
-		NamedGraph graph = new NamedGraph(name, name, traceToBlueprint.getGraph());
+		NamedGraph graph = new NamedGraph(name, name, traceToGraph.getGraph());
 
 		this.getOutputPort().send(graph);
 	}
diff --git a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java
index f8454abc..c1abd011 100644
--- a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java
+++ b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java
@@ -62,6 +62,8 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>>
 		return this.children;
 	}
 
+	public abstract T getParent();
+
 	public final String getContainer() {
 		return this.container;
 	}
-- 
GitLab