diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java new file mode 100644 index 0000000000000000000000000000000000000000..577ec64016841692bc20e30a8e2762d23edfe678 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/GraphTester.java @@ -0,0 +1,38 @@ +package kieker.analysis.graph; + +import com.tinkerpop.blueprints.Graph; +import com.tinkerpop.blueprints.impls.tg.TinkerGraph; + +public class GraphTester { + + public static void main(final String[] args) { + + Graph graph1 = new TinkerGraph(); + Graph graph2 = new TinkerGraph(); + + com.tinkerpop.blueprints.Vertex g1n1 = graph1.addVertex("g1::n1"); + + com.tinkerpop.blueprints.Vertex g2n1 = graph2.addVertex("g2::n1"); + + com.tinkerpop.blueprints.Edge edge = g1n1.addEdge("...", g2n1); + + System.out.println(graph1); + System.out.println(graph2); + + /* + * Graph graph = new GraphImpl(); + * + * Vertex node1 = graph.addVertex("n1"); + * + * Vertex node2 = graph.addVertex("n2"); + * + * Graph subgraph = node1.addSubgraph(); + * + * Vertex node11 = subgraph.addVertex("n1::n1"); + * + * node2.addEdgeTo(node11);* + * + */ + } + +} diff --git a/src/main/java/kieker/analysis/graph/Vertex.java b/src/main/java/kieker/analysis/graph/Vertex.java index 2581b37b93b5353bc78e956b62969de5d983a316..7953729e577442ab20831637696d1d99a89e63d0 100644 --- a/src/main/java/kieker/analysis/graph/Vertex.java +++ b/src/main/java/kieker/analysis/graph/Vertex.java @@ -6,10 +6,14 @@ public interface Vertex extends Element { public Graph getSubgraph(); + public Graph addSubgraph(); + // public Iterable<Edge> getEdges(Direction direction, String... labels); // public Iterable<Vertex> getVertices(Direction direction, String... labels); - // public Edge addEdge(String label, Vertex inVertex); + public Edge addEdge(Vertex inVertex); + + public Edge addEdge(Object id, Vertex inVertex); } diff --git a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java index 126eec949cc4f4b900cc3642d693c1cd05816162..05cc2949555802a70be9cf7db7827359cc3cc370 100644 --- a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java @@ -1,9 +1,24 @@ package kieker.analysis.graph.impl; import kieker.analysis.graph.Edge; +import kieker.analysis.graph.Vertex; class EdgeImpl extends ElementImpl implements Edge { + private final Vertex outVertex; + private final Vertex inVertex; + + protected EdgeImpl(final String id, final Vertex outVertex, final Vertex inVertex, final GraphImpl graph) { + super(id, graph); + this.outVertex = outVertex; + this.inVertex = inVertex; + } + + @Override + public void remove() { + this.graph.removeEdge(this); + } + // public Vertex getVertex(Direction direction) throws IllegalArgumentException; } diff --git a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java index 5f23f4cc54be5db30c35f45bc34800101f43f37a..e1c2fbd6b26cecf3508fb5bfd22fc40f296e9750 100644 --- a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java @@ -41,10 +41,7 @@ abstract class ElementImpl implements Element { } @Override - public void remove() { - // TODO Auto-generated method stub - - } + abstract public void remove(); @Override public Object getId() { diff --git a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java index faa216dc6f484db63a189d37ddb2476c01e0dee1..14c70dbb9610930020465f6c49addd083005f819 100644 --- a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java @@ -33,7 +33,7 @@ public class GraphImpl implements Graph { Vertex vertex = new VertexImpl(idString, this); vertices.put(vertex.getId().toString(), vertex); - return null; + return vertex; } @Override @@ -72,7 +72,7 @@ public class GraphImpl implements Graph { } } - Edge edge = EdgeImpl(id, outVertex, inVertex, this); + Edge edge = new EdgeImpl(idString, outVertex, inVertex, this); edges.put(edge.getId().toString(), edge); // TODO Add Edge to vertices diff --git a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java index 44f3e069c0bc98fb20e687e205b3b074854fdf2b..0135d1b539ee276da09e28b2d4b43ef7e992f331 100644 --- a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java @@ -1,10 +1,15 @@ package kieker.analysis.graph.impl; +import kieker.analysis.graph.Edge; import kieker.analysis.graph.Graph; import kieker.analysis.graph.Vertex; class VertexImpl extends ElementImpl implements Vertex { + protected VertexImpl(final String id, final GraphImpl graph) { + super(id, graph); + } + @Override public Boolean hasSubgraph() { // TODO Auto-generated method stub @@ -17,4 +22,24 @@ class VertexImpl extends ElementImpl implements Vertex { return null; } + @Override + public Graph addSubgraph() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Edge addEdge(final Vertex inVertex) { + return addEdge(null, inVertex); + } + + @Override + public Edge addEdge(final Object id, final Vertex inVertex) { + return this.graph.addEdge(id, this, inVertex); + } + + @Override + public void remove() { + graph.removeVertex(this); + } }