Skip to content
Snippets Groups Projects
Commit 3897b9c1 authored by Sören Henning's avatar Sören Henning
Browse files

use traverser for transformation

parent 2951150b
No related branches found
No related tags found
1 merge request!17Get impletemented stages and Java 8
......@@ -3,9 +3,15 @@ package kieker.analysis.graph.export;
import kieker.analysis.graph.Edge;
import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
import kieker.analysis.graph.traversal.EdgeVisitor;
import kieker.analysis.graph.traversal.FlatGraphTraverser;
import kieker.analysis.graph.traversal.GraphTraverser;
import kieker.analysis.graph.traversal.VertexVisitor;
//TODO better name mapper
public abstract class AbstractTransformer<O> {
public abstract class AbstractTransformer<O> implements VertexVisitor, EdgeVisitor {
private final GraphTraverser graphTraverser = new FlatGraphTraverser(this, this);
protected Graph graph;
......@@ -15,13 +21,7 @@ public abstract class AbstractTransformer<O> {
public final O transform() {
for (final Vertex vertex : graph.getVertices()) {
mapVertex(vertex);
}
for (final Edge edge : graph.getEdges()) {
mapEdge(edge);
}
graphTraverser.traverse(graph);
return getTransformation();
}
......@@ -31,4 +31,15 @@ public abstract class AbstractTransformer<O> {
protected abstract void mapEdge(Edge edge);
protected abstract O getTransformation();
@Override
public void visitVertex(final Vertex vertex) {
mapVertex(vertex);
}
@Override
public void visitEdge(final Edge edge) {
mapEdge(edge);
}
}
package kieker.analysis.graph.traversal;
import java.util.List;
import kieker.analysis.graph.Edge;
import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
public class DeepGraphTraverser extends GraphTraverser {
public DeepGraphTraverser() {
super();
}
public DeepGraphTraverser(final List<VertexVisitor> vertexVisitors, final List<EdgeVisitor> edgeVisitors) {
super(vertexVisitors, edgeVisitors);
}
public DeepGraphTraverser(final VertexVisitor vertexVisitor, final EdgeVisitor edgeVisitor) {
super(vertexVisitor, edgeVisitor);
}
@Override
public void traverse(final Graph graph) {
for (final Vertex vertex : graph.getVertices()) {
......
package kieker.analysis.graph.traversal;
import java.util.List;
import kieker.analysis.graph.Edge;
import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
public class FlatGraphTraverser extends GraphTraverser {
public FlatGraphTraverser() {
super();
}
public FlatGraphTraverser(final List<VertexVisitor> vertexVisitors, final List<EdgeVisitor> edgeVisitors) {
super(vertexVisitors, edgeVisitors);
}
public FlatGraphTraverser(final VertexVisitor vertexVisitor, final EdgeVisitor edgeVisitor) {
super(vertexVisitor, edgeVisitor);
}
@Override
public void traverse(final Graph graph) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment