From 9eb005db72bb56e14b281b3d19edb41e98089108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de> Date: Mon, 4 Apr 2016 11:34:32 +0200 Subject: [PATCH] graphs can now have properties --- src/main/java/kieker/analysis/graph/Edge.java | 2 +- .../java/kieker/analysis/graph/Element.java | 33 ++++--- .../java/kieker/analysis/graph/Graph.java | 2 +- .../kieker/analysis/graph/GraphTester.java | 4 +- .../java/kieker/analysis/graph/Vertex.java | 2 +- .../kieker/analysis/graph/impl/EdgeImpl.java | 2 +- .../analysis/graph/impl/ElementImpl.java | 87 ++++++++----------- .../analysis/graph/impl/GraphElementImpl.java | 24 +++++ .../kieker/analysis/graph/impl/GraphImpl.java | 2 +- .../analysis/graph/impl/VertexImpl.java | 2 +- 10 files changed, 83 insertions(+), 77 deletions(-) create mode 100644 src/main/java/kieker/analysis/graph/impl/GraphElementImpl.java diff --git a/src/main/java/kieker/analysis/graph/Edge.java b/src/main/java/kieker/analysis/graph/Edge.java index 75fdbd09..78e516be 100644 --- a/src/main/java/kieker/analysis/graph/Edge.java +++ b/src/main/java/kieker/analysis/graph/Edge.java @@ -1,6 +1,6 @@ package kieker.analysis.graph; -public interface Edge extends Element { +public interface Edge extends GraphElement { 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 index 9682cead..1e39d8d6 100644 --- a/src/main/java/kieker/analysis/graph/Element.java +++ b/src/main/java/kieker/analysis/graph/Element.java @@ -1,18 +1,15 @@ -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(); -} +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); + +} diff --git a/src/main/java/kieker/analysis/graph/Graph.java b/src/main/java/kieker/analysis/graph/Graph.java index 36593bf6..ca9f3de2 100644 --- a/src/main/java/kieker/analysis/graph/Graph.java +++ b/src/main/java/kieker/analysis/graph/Graph.java @@ -1,6 +1,6 @@ package kieker.analysis.graph; -public interface Graph { +public interface Graph extends Element { public String getName(); diff --git a/src/main/java/kieker/analysis/graph/GraphTester.java b/src/main/java/kieker/analysis/graph/GraphTester.java index 19cbaaed..91a80492 100644 --- a/src/main/java/kieker/analysis/graph/GraphTester.java +++ b/src/main/java/kieker/analysis/graph/GraphTester.java @@ -3,7 +3,7 @@ package kieker.analysis.graph; import java.io.OutputStreamWriter; import java.util.ArrayList; -import kieker.analysis.graph.export.dot.DotWriter; +import kieker.analysis.graph.export.dot.DotExporter; import kieker.analysis.graph.export.graphml.GraphMLExporter; import kieker.analysis.graph.impl.GraphImpl; @@ -99,7 +99,7 @@ public class GraphTester { GraphMLExporter graphMLExporter = new GraphMLExporter(); graphMLExporter.export(graph, System.out); - DotWriter dotWriter = new DotWriter(graph, new OutputStreamWriter(System.out)); + DotExporter dotWriter = new DotExporter(graph, new OutputStreamWriter(System.out)); dotWriter.transform(); // DotExporter dotExporter = new DotExporter(); diff --git a/src/main/java/kieker/analysis/graph/Vertex.java b/src/main/java/kieker/analysis/graph/Vertex.java index 24464338..5fa0403d 100644 --- a/src/main/java/kieker/analysis/graph/Vertex.java +++ b/src/main/java/kieker/analysis/graph/Vertex.java @@ -1,6 +1,6 @@ package kieker.analysis.graph; -public interface Vertex extends Element { +public interface Vertex extends GraphElement { public Graph addChildGraph(); diff --git a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java index 6909533c..16e53e25 100644 --- a/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/EdgeImpl.java @@ -4,7 +4,7 @@ import kieker.analysis.graph.Direction; import kieker.analysis.graph.Edge; import kieker.analysis.graph.Vertex; -class EdgeImpl extends ElementImpl implements Edge { +class EdgeImpl extends GraphElementImpl implements Edge { private final Vertex outVertex; private final Vertex inVertex; diff --git a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java index f1c2dd91..02861de2 100644 --- a/src/main/java/kieker/analysis/graph/impl/ElementImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/ElementImpl.java @@ -1,51 +1,36 @@ -package kieker.analysis.graph.impl; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import kieker.analysis.graph.Element; - -abstract class ElementImpl implements Element { - - protected Map<String, Object> properties = new HashMap<String, Object>(); - protected final String id; - protected final GraphImpl graph; - - protected ElementImpl(final String id, final GraphImpl graph) { - this.graph = graph; - this.id = id; - } - - @Override - @SuppressWarnings("unchecked") - public <T> T getProperty(final String key) { - return (T) this.properties.get(key); - } - - @Override - public Set<String> getPropertyKeys() { - return new HashSet<String>(this.properties.keySet()); - } - - @Override - public void setProperty(final String key, final Object value) { - this.properties.put(key, value); - } - - @Override - @SuppressWarnings("unchecked") - public <T> T removeProperty(final String key) { - return (T) this.properties.remove(key); - } - - @Override - abstract public void remove(); - - @Override - public Object getId() { - return this.id; - } - -} +package kieker.analysis.graph.impl; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import kieker.analysis.graph.Element; + +abstract class ElementImpl implements Element { + + protected Map<String, Object> properties = new HashMap<String, Object>(); + + @Override + @SuppressWarnings("unchecked") + public <T> T getProperty(final String key) { + return (T) this.properties.get(key); + } + + @Override + public Set<String> getPropertyKeys() { + return new HashSet<String>(this.properties.keySet()); + } + + @Override + public void setProperty(final String key, final Object value) { + this.properties.put(key, value); + } + + @Override + @SuppressWarnings("unchecked") + public <T> T removeProperty(final String key) { + return (T) this.properties.remove(key); + } + +} diff --git a/src/main/java/kieker/analysis/graph/impl/GraphElementImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphElementImpl.java new file mode 100644 index 00000000..efbf231d --- /dev/null +++ b/src/main/java/kieker/analysis/graph/impl/GraphElementImpl.java @@ -0,0 +1,24 @@ +package kieker.analysis.graph.impl; + +import kieker.analysis.graph.GraphElement; + +abstract class GraphElementImpl extends ElementImpl implements GraphElement { + + protected final String id; + protected final GraphImpl graph; + + protected GraphElementImpl(final String id, final GraphImpl graph) { + super(); + this.graph = graph; + this.id = id; + } + + @Override + abstract public void remove(); + + @Override + public Object getId() { + return this.id; + } + +} diff --git a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java index ce3ef5ef..27dc1641 100644 --- a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java @@ -9,7 +9,7 @@ import kieker.analysis.graph.Edge; import kieker.analysis.graph.Graph; import kieker.analysis.graph.Vertex; -public class GraphImpl implements Graph { +public class GraphImpl extends ElementImpl implements Graph { protected String name = "G"; diff --git a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java index f733eb0f..8d0b1de8 100644 --- a/src/main/java/kieker/analysis/graph/impl/VertexImpl.java +++ b/src/main/java/kieker/analysis/graph/impl/VertexImpl.java @@ -9,7 +9,7 @@ import kieker.analysis.graph.Edge; import kieker.analysis.graph.Graph; import kieker.analysis.graph.Vertex; -class VertexImpl extends ElementImpl implements Vertex { +class VertexImpl extends GraphElementImpl implements Vertex { protected Map<String, Edge> outEdges = new HashMap<String, Edge>(); protected Map<String, Edge> inEdges = new HashMap<String, Edge>(); -- GitLab