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

provide traversal classes

parent 71659c85
No related branches found
No related tags found
1 merge request!17Get impletemented stages and Java 8
package kieker.analysis.graph.traversal;
import kieker.analysis.graph.Edge;
import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
public class DeepGraphTraverser extends GraphTraverser {
@Override
public void traverse(final Graph graph) {
for (final Vertex vertex : graph.getVertices()) {
for (final VertexVisitor visitor : vertexVisitors) {
visitor.visitVertex(vertex);
}
if (vertex.hasChildGraph()) {
traverse(vertex.getChildGraph());
}
}
for (final Edge edge : graph.getEdges()) {
for (final EdgeVisitor visitor : edgeVisitors) {
visitor.visitEdge(edge);
}
}
}
}
package kieker.analysis.graph.traversal;
import kieker.analysis.graph.Edge;
public interface EdgeVisitor {
public void visitEdge(Edge edge);
}
......@@ -4,16 +4,21 @@ import kieker.analysis.graph.Edge;
import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
public class FlatGraphTraverser {
public class FlatGraphTraverser extends GraphTraverser {
@Override
public void traverse(final Graph graph) {
for (Vertex vertex : graph.getVertices()) {
// TODO call (vertex) visitor
for (VertexVisitor visitor : vertexVisitors) {
visitor.visitVertex(vertex);
}
}
for (Edge edge : graph.getEdges()) {
// TODO Call (edge)visitor
for (EdgeVisitor visitor : edgeVisitors) {
visitor.visitEdge(edge);
}
}
}
......
package kieker.analysis.graph.traversal;
import java.util.ArrayList;
import java.util.List;
import kieker.analysis.graph.Graph;
public abstract class GraphTraverser {
protected List<VertexVisitor> vertexVisitors;
protected List<EdgeVisitor> edgeVisitors;
public GraphTraverser() {
this.vertexVisitors = new ArrayList<>();
this.edgeVisitors = new ArrayList<>();
}
public GraphTraverser(final VertexVisitor vertexVisitor, final EdgeVisitor edgeVisitor) {
this();
vertexVisitors.add(vertexVisitor);
edgeVisitors.add(edgeVisitor);
}
public GraphTraverser(final List<VertexVisitor> vertexVisitors, final List<EdgeVisitor> edgeVisitors) {
this.vertexVisitors = vertexVisitors;
this.edgeVisitors = edgeVisitors;
}
public List<VertexVisitor> getVertexVisitors() {
return vertexVisitors;
}
public void setVertexVisitors(final List<VertexVisitor> vertexVisitors) {
this.vertexVisitors = vertexVisitors;
}
public void addVertexVisitor(final VertexVisitor vertexVisitor) {
vertexVisitors.add(vertexVisitor);
}
public List<EdgeVisitor> getEdgeVisitors() {
return edgeVisitors;
}
public void setEdgeVisitors(final List<EdgeVisitor> edgeVisitors) {
this.edgeVisitors = edgeVisitors;
}
public void addEdgeVisitor(final EdgeVisitor edgeVisitor) {
edgeVisitors.add(edgeVisitor);
}
public abstract void traverse(final Graph graph);
}
......@@ -5,6 +5,7 @@ import kieker.analysis.graph.Graph;
import kieker.analysis.graph.Vertex;
//TODO unused
//TODO remove!
public class NestedGraphTraverser {
public void traverse(final Graph graph) {
......
package kieker.analysis.graph.traversal;
import kieker.analysis.graph.Vertex;
public interface VertexVisitor {
public void visitVertex(Vertex vertex);
}
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