From a5a953db433e7602a7f6a2a9a74452c3d9fca6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de> Date: Tue, 26 Jan 2016 15:46:00 +0100 Subject: [PATCH] initial structure for graph model --- src/main/java/kieker/analysis/graph/Edge.java | 7 ++ .../java/kieker/analysis/graph/Element.java | 18 +++++ .../java/kieker/analysis/graph/Graph.java | 21 ++++++ .../java/kieker/analysis/graph/Subgraph.java | 5 ++ .../java/kieker/analysis/graph/Vertex.java | 15 +++++ .../kieker/analysis/graph/impl/EdgeImp.java | 9 +++ .../analysis/graph/impl/ElementImpl.java | 45 +++++++++++++ .../kieker/analysis/graph/impl/GraphImpl.java | 66 +++++++++++++++++++ .../analysis/graph/impl/VertexImpl.java | 20 ++++++ 9 files changed, 206 insertions(+) create mode 100644 src/main/java/kieker/analysis/graph/Edge.java create mode 100644 src/main/java/kieker/analysis/graph/Element.java create mode 100644 src/main/java/kieker/analysis/graph/Graph.java create mode 100644 src/main/java/kieker/analysis/graph/Subgraph.java create mode 100644 src/main/java/kieker/analysis/graph/Vertex.java create mode 100644 src/main/java/kieker/analysis/graph/impl/EdgeImp.java create mode 100644 src/main/java/kieker/analysis/graph/impl/ElementImpl.java create mode 100644 src/main/java/kieker/analysis/graph/impl/GraphImpl.java create mode 100644 src/main/java/kieker/analysis/graph/impl/VertexImpl.java diff --git a/src/main/java/kieker/analysis/graph/Edge.java b/src/main/java/kieker/analysis/graph/Edge.java new file mode 100644 index 00000000..bc29f760 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/Edge.java @@ -0,0 +1,7 @@ +package kieker.analysis.graph; + +public interface Edge extends Element { + + // public Vertex getVertex(Direction direction) throws IllegalArgumentException; + +} diff --git a/src/main/java/kieker/analysis/graph/Element.java b/src/main/java/kieker/analysis/graph/Element.java new file mode 100644 index 00000000..b90e87b7 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/Element.java @@ -0,0 +1,18 @@ +package kieker.analysis.graph; + +import java.util.Set; + +public abstract interface Element { + + public <T> T getProperty(String key); + + public Set<String> getPropertyKeys(); + + public void setProperty(String key, Object value); + + public <T> T removeProperty(String key); + + public void remove(); + + public Object getId(); +} diff --git a/src/main/java/kieker/analysis/graph/Graph.java b/src/main/java/kieker/analysis/graph/Graph.java new file mode 100644 index 00000000..0719646b --- /dev/null +++ b/src/main/java/kieker/analysis/graph/Graph.java @@ -0,0 +1,21 @@ +package kieker.analysis.graph; + +public interface Graph { + + public Vertex addVertex(Object id); + + public Vertex getVertex(Object id); + + public void removeVertex(Vertex vertex); + + public Iterable<Vertex> getVertices(); + + public Edge addEdge(Object id, Vertex outVertex, Vertex inVertex); + + public Edge getEdge(Object id); + + public void removeEdge(Edge edge); + + public Iterable<Edge> getEdges(); + +} diff --git a/src/main/java/kieker/analysis/graph/Subgraph.java b/src/main/java/kieker/analysis/graph/Subgraph.java new file mode 100644 index 00000000..a3beca7c --- /dev/null +++ b/src/main/java/kieker/analysis/graph/Subgraph.java @@ -0,0 +1,5 @@ +package kieker.analysis.graph; + +public interface Subgraph { + +} diff --git a/src/main/java/kieker/analysis/graph/Vertex.java b/src/main/java/kieker/analysis/graph/Vertex.java new file mode 100644 index 00000000..2581b37b --- /dev/null +++ b/src/main/java/kieker/analysis/graph/Vertex.java @@ -0,0 +1,15 @@ +package kieker.analysis.graph; + +public interface Vertex extends Element { + + public Boolean hasSubgraph(); + + public Graph getSubgraph(); + + // public Iterable<Edge> getEdges(Direction direction, String... labels); + + // public Iterable<Vertex> getVertices(Direction direction, String... labels); + + // public Edge addEdge(String label, Vertex inVertex); + +} diff --git a/src/main/java/kieker/analysis/graph/impl/EdgeImp.java b/src/main/java/kieker/analysis/graph/impl/EdgeImp.java new file mode 100644 index 00000000..fcf66bd4 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/impl/EdgeImp.java @@ -0,0 +1,9 @@ +package kieker.analysis.graph.impl; + +import kieker.analysis.graph.Edge; + +class EdgeImp extends ElementImpl implements Edge { + + // 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 new file mode 100644 index 00000000..6a1af0ef --- /dev/null +++ b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java @@ -0,0 +1,45 @@ +package kieker.analysis.graph.impl; + +import java.util.Set; + +import kieker.analysis.graph.Element; + +abstract class ElementImpl implements Element { + + @Override + public <T> T getProperty(final String key) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Set<String> getPropertyKeys() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setProperty(final String key, final Object value) { + // TODO Auto-generated method stub + + } + + @Override + public <T> T removeProperty(final String key) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void remove() { + // TODO Auto-generated method stub + + } + + @Override + public Object getId() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java new file mode 100644 index 00000000..c6bc37f5 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java @@ -0,0 +1,66 @@ +package kieker.analysis.graph.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import kieker.analysis.graph.Edge; +import kieker.analysis.graph.Graph; +import kieker.analysis.graph.Vertex; + +public class GraphImpl implements Graph { + + protected Map<String, Vertex> vertices = new HashMap<String, Vertex>(); + protected Map<String, Edge> edges = new HashMap<String, Edge>(); + + public GraphImpl() {} + + @Override + public Vertex addVertex(final Object id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Vertex getVertex(final Object id) { + // TODO exception if not exists + String idString = id.toString(); + return this.vertices.get(idString); + } + + @Override + public Iterable<Vertex> getVertices() { + return new ArrayList<Vertex>(this.vertices.values()); + } + + @Override + public void removeVertex(final Vertex vertex) { + // TODO Auto-generated method stub + + } + + @Override + public Edge addEdge(final Object id, final Vertex outVertex, final Vertex inVertex) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Edge getEdge(final Object id) { + // TODO exception if not exists + String idString = id.toString(); + return this.edges.get(idString); + } + + @Override + public Iterable<Edge> getEdges() { + return new ArrayList<Edge>(this.edges.values()); + } + + @Override + public void removeEdge(final Edge edge) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java new file mode 100644 index 00000000..44f3e069 --- /dev/null +++ b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java @@ -0,0 +1,20 @@ +package kieker.analysis.graph.impl; + +import kieker.analysis.graph.Graph; +import kieker.analysis.graph.Vertex; + +class VertexImpl extends ElementImpl implements Vertex { + + @Override + public Boolean hasSubgraph() { + // TODO Auto-generated method stub + return false; + } + + @Override + public Graph getSubgraph() { + // TODO Auto-generated method stub + return null; + } + +} -- GitLab