From 5a2a268c889151dda508e683b10ae8a30931c46b Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <stu103017@mail.uni-kiel.de>
Date: Thu, 2 Jul 2015 15:41:57 +0200
Subject: [PATCH] removed empty context

---
 .../teetime/framework/AbstractCompositeStage.java |  2 +-
 .../teetime/framework/ConfigurationContext.java   |  6 ++++--
 src/main/java/teetime/framework/EmptyContext.java | 15 ---------------
 src/main/java/teetime/framework/Stage.java        |  2 +-
 .../java/teetime/stage/io/EveryXthPrinter.java    |  3 +--
 .../java/teetime/stage/string/WordCounter.java    |  3 +--
 .../java/teetime/framework/TraversorTest.java     |  2 +-
 7 files changed, 9 insertions(+), 24 deletions(-)
 delete mode 100644 src/main/java/teetime/framework/EmptyContext.java

diff --git a/src/main/java/teetime/framework/AbstractCompositeStage.java b/src/main/java/teetime/framework/AbstractCompositeStage.java
index 07aa5c98..060f0e77 100644
--- a/src/main/java/teetime/framework/AbstractCompositeStage.java
+++ b/src/main/java/teetime/framework/AbstractCompositeStage.java
@@ -36,7 +36,7 @@ public abstract class AbstractCompositeStage {
 		this.context = new ConfigurationContext();
 	}
 
-	protected ConfigurationContext getContext() {
+	ConfigurationContext getContext() {
 		return context;
 	}
 
diff --git a/src/main/java/teetime/framework/ConfigurationContext.java b/src/main/java/teetime/framework/ConfigurationContext.java
index 555e0e30..87bb41bf 100644
--- a/src/main/java/teetime/framework/ConfigurationContext.java
+++ b/src/main/java/teetime/framework/ConfigurationContext.java
@@ -29,7 +29,9 @@ import teetime.framework.pipe.InstantiationPipe;
  *
  * @since 2.0
  */
-public class ConfigurationContext {
+final class ConfigurationContext {
+
+	public static final ConfigurationContext EMPTY_CONTEXT = new ConfigurationContext();
 
 	private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationContext.class);
 
@@ -70,7 +72,7 @@ public class ConfigurationContext {
 	}
 
 	final void mergeContexts(final Stage stage) {
-		if (!stage.owningContext.equals(EmptyContext.getInstance())) {
+		if (!stage.owningContext.equals(EMPTY_CONTEXT)) {
 			if (stage.owningContext != this) { // Performance
 				this.threadableStages.putAll(stage.owningContext.threadableStages);
 				stage.owningContext.threadableStages = this.threadableStages;
diff --git a/src/main/java/teetime/framework/EmptyContext.java b/src/main/java/teetime/framework/EmptyContext.java
deleted file mode 100644
index 3a676ebc..00000000
--- a/src/main/java/teetime/framework/EmptyContext.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package teetime.framework;
-
-class EmptyContext extends ConfigurationContext {
-
-	private static final EmptyContext INSTANCE = new EmptyContext();
-
-	private EmptyContext() {
-
-	}
-
-	static EmptyContext getInstance() {
-		return EmptyContext.INSTANCE;
-	}
-
-}
diff --git a/src/main/java/teetime/framework/Stage.java b/src/main/java/teetime/framework/Stage.java
index 4625f610..08a0e47b 100644
--- a/src/main/java/teetime/framework/Stage.java
+++ b/src/main/java/teetime/framework/Stage.java
@@ -48,7 +48,7 @@ public abstract class Stage {
 	/** The owning thread of this stage if this stage is directly executed by a {@link AbstractRunnableStage}, <code>null</code> otherwise. */
 	protected Thread owningThread;
 
-	public ConfigurationContext owningContext = EmptyContext.getInstance();
+	public ConfigurationContext owningContext = ConfigurationContext.EMPTY_CONTEXT;
 
 	protected Stage() {
 		this.id = this.createId();
diff --git a/src/main/java/teetime/stage/io/EveryXthPrinter.java b/src/main/java/teetime/stage/io/EveryXthPrinter.java
index 4b62916d..c03f5646 100644
--- a/src/main/java/teetime/stage/io/EveryXthPrinter.java
+++ b/src/main/java/teetime/stage/io/EveryXthPrinter.java
@@ -19,7 +19,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import teetime.framework.AbstractCompositeStage;
-import teetime.framework.ConfigurationContext;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.framework.Stage;
@@ -32,7 +31,7 @@ public final class EveryXthPrinter<T> extends AbstractCompositeStage {
 	private final Distributor<T> distributor;
 	private final List<Stage> lastStages = new ArrayList<Stage>();
 
-	public EveryXthPrinter(final int threshold, final ConfigurationContext context) {
+	public EveryXthPrinter(final int threshold) {
 		distributor = new Distributor<T>(new CopyByReferenceStrategy());
 		EveryXthStage<T> everyXthStage = new EveryXthStage<T>(threshold);
 		Printer<Integer> printer = new Printer<Integer>();
diff --git a/src/main/java/teetime/stage/string/WordCounter.java b/src/main/java/teetime/stage/string/WordCounter.java
index 6d15a3f2..46d22380 100644
--- a/src/main/java/teetime/stage/string/WordCounter.java
+++ b/src/main/java/teetime/stage/string/WordCounter.java
@@ -16,7 +16,6 @@
 package teetime.stage.string;
 
 import teetime.framework.AbstractCompositeStage;
-import teetime.framework.ConfigurationContext;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.stage.MappingCounter;
@@ -36,7 +35,7 @@ public final class WordCounter extends AbstractCompositeStage {
 	private final Tokenizer tokenizer;
 	private final MappingCounter<String> mapCounter;
 
-	public WordCounter(final ConfigurationContext context) {
+	public WordCounter() {
 
 		this.tokenizer = new Tokenizer(" ");
 		final ToLowerCase toLowerCase = new ToLowerCase();
diff --git a/src/test/java/teetime/framework/TraversorTest.java b/src/test/java/teetime/framework/TraversorTest.java
index 95e118b1..ec0829ce 100644
--- a/src/test/java/teetime/framework/TraversorTest.java
+++ b/src/test/java/teetime/framework/TraversorTest.java
@@ -77,7 +77,7 @@ public class TraversorTest {
 			// Middle part... multiple instances of WordCounter are created and connected to the merger and distrubuter stages
 			for (int i = 0; i < threads; i++) {
 				// final InputPortSizePrinter<String> inputPortSizePrinter = new InputPortSizePrinter<String>();
-				final WordCounter wc = new WordCounter(this.getContext());
+				final WordCounter wc = new WordCounter();
 				// intraFact.create(inputPortSizePrinter.getOutputPort(), wc.getInputPort());
 
 				connectPorts(distributor.getNewOutputPort(), wc.getInputPort());
-- 
GitLab