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