From 0e4765922db3dd250ef932ae3c5f7d8c186709e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <stu114708@informatik.uni-kiel.de>
Date: Mon, 9 May 2016 13:23:44 +0200
Subject: [PATCH] added models for system entities: Component, Container,
 Operation

---
 .../domain/systemdependency/Component.java    | 29 ++++++++
 .../domain/systemdependency/Container.java    | 22 ++++++
 .../domain/systemdependency/Operation.java    | 17 +++++
 .../domain/systemdependency/SystemEntity.java | 68 +++++++++++++++++++
 4 files changed, 136 insertions(+)
 create mode 100644 src/main/java/kieker/analysis/domain/systemdependency/Component.java
 create mode 100644 src/main/java/kieker/analysis/domain/systemdependency/Container.java
 create mode 100644 src/main/java/kieker/analysis/domain/systemdependency/Operation.java
 create mode 100644 src/main/java/kieker/analysis/domain/systemdependency/SystemEntity.java

diff --git a/src/main/java/kieker/analysis/domain/systemdependency/Component.java b/src/main/java/kieker/analysis/domain/systemdependency/Component.java
new file mode 100644
index 00000000..fc89ed4e
--- /dev/null
+++ b/src/main/java/kieker/analysis/domain/systemdependency/Component.java
@@ -0,0 +1,29 @@
+package kieker.analysis.domain.systemdependency;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class Component extends SystemEntity {
+
+	private final Container container;
+	private final Collection<Operation> operations = new ArrayList<>();
+
+	public Component(final String name, final Container container) {
+		super(name, container.getIdentifier() + ',' + name);
+		this.container = container;
+		container.addComponent(this);
+	}
+
+	public Container getContainer() {
+		return container;
+	}
+
+	public Collection<Operation> getOperations() {
+		return operations;
+	}
+
+	protected void addOperation(final Operation operation) {
+		this.operations.add(operation);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/systemdependency/Container.java b/src/main/java/kieker/analysis/domain/systemdependency/Container.java
new file mode 100644
index 00000000..46f5764a
--- /dev/null
+++ b/src/main/java/kieker/analysis/domain/systemdependency/Container.java
@@ -0,0 +1,22 @@
+package kieker.analysis.domain.systemdependency;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class Container extends SystemEntity {
+
+	private final Collection<Component> components = new ArrayList<>();
+
+	public Container(final String name) {
+		super(name, name);
+	}
+
+	public Collection<Component> getComponents() {
+		return components;
+	}
+
+	protected void addComponent(final Component component) {
+		this.components.add(component);
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/systemdependency/Operation.java b/src/main/java/kieker/analysis/domain/systemdependency/Operation.java
new file mode 100644
index 00000000..5444c14d
--- /dev/null
+++ b/src/main/java/kieker/analysis/domain/systemdependency/Operation.java
@@ -0,0 +1,17 @@
+package kieker.analysis.domain.systemdependency;
+
+public class Operation extends SystemEntity {
+
+	private final Component component;
+
+	public Operation(final String name, final Component component) {
+		super(name, component.getIdentifier() + ',' + name);
+		this.component = component;
+		component.addOperation(this);
+	}
+
+	public Component getComponent() {
+		return component;
+	}
+
+}
diff --git a/src/main/java/kieker/analysis/domain/systemdependency/SystemEntity.java b/src/main/java/kieker/analysis/domain/systemdependency/SystemEntity.java
new file mode 100644
index 00000000..5583f163
--- /dev/null
+++ b/src/main/java/kieker/analysis/domain/systemdependency/SystemEntity.java
@@ -0,0 +1,68 @@
+package kieker.analysis.domain.systemdependency;
+
+public abstract class SystemEntity {
+
+	private final String name;
+
+	private final String identifier;
+
+	private long totalDuration;
+	private long medianDuration;
+	private long minDuration;
+	private long maxDuration;
+	private long meanDuration;
+
+	public SystemEntity(final String name, final String identifier) {
+		this.name = name;
+		this.identifier = identifier;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public String getIdentifier() {
+		return identifier;
+	}
+
+	public long getTotalDuration() {
+		return totalDuration;
+	}
+
+	public void setTotalDuration(final long totalDuration) {
+		this.totalDuration = totalDuration;
+	}
+
+	public long getMedianDuration() {
+		return medianDuration;
+	}
+
+	public void setMedianDuration(final long medianDuration) {
+		this.medianDuration = medianDuration;
+	}
+
+	public long getMinDuration() {
+		return minDuration;
+	}
+
+	public void setMinDuration(final long minDuration) {
+		this.minDuration = minDuration;
+	}
+
+	public long getMaxDuration() {
+		return maxDuration;
+	}
+
+	public void setMaxDuration(final long maxDuration) {
+		this.maxDuration = maxDuration;
+	}
+
+	public long getMeanDuration() {
+		return meanDuration;
+	}
+
+	public void setMeanDuration(final long meanDuration) {
+		this.meanDuration = meanDuration;
+	}
+
+}
-- 
GitLab