diff --git a/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java b/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java new file mode 100644 index 0000000000000000000000000000000000000000..c13ec79044435907082df76e7204e09d974a3dc2 --- /dev/null +++ b/src/main/java/kieker/analysis/trace/traversal/AbstractTraceToGraphTransformer.java @@ -0,0 +1,38 @@ +package kieker.analysis.trace.traversal; + +import com.tinkerpop.blueprints.Edge; +import com.tinkerpop.blueprints.Graph; +import com.tinkerpop.blueprints.Vertex; +import com.tinkerpop.blueprints.impls.tg.TinkerGraph; + +import kieker.analysis.traceanalysisdomain.AbstractOperationCall; + +public abstract class AbstractTraceToGraphTransformer<C extends AbstractOperationCall<C>> extends OperationCallVisitor<C> { + + protected final Graph graph; + + public AbstractTraceToGraphTransformer() { + super(); + this.graph = new TinkerGraph(); + } + + public Graph getGraph() { + return graph; + } + + @Override + public void visit(final C operationCall) { + + addVertex(operationCall); + + if (operationCall.getParent() != null) { + addEdge(operationCall, operationCall.getParent()); + } + + } + + protected abstract Vertex addVertex(C operationCall); + + protected abstract Edge addEdge(C operationCall, C parentOperationCall); + +}