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