From 1f3e555a019bebeed2d76becf45490002ed6e5f7 Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Sat, 9 May 2015 14:30:08 +0200
Subject: [PATCH] reduced visibility of executeStage; minor refactorings and
 javadoc; added an additional state for stages

---
 .../java/teetime/framework/AbstractConsumerStage.java     | 2 +-
 .../java/teetime/framework/AbstractProducerStage.java     | 2 +-
 src/main/java/teetime/framework/AbstractStage.java        | 8 ++++----
 src/main/java/teetime/framework/StageState.java           | 1 +
 src/main/java/teetime/stage/InstanceOfFilter.java         | 2 +-
 5 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/main/java/teetime/framework/AbstractConsumerStage.java b/src/main/java/teetime/framework/AbstractConsumerStage.java
index c8935aa9..f5a8a584 100644
--- a/src/main/java/teetime/framework/AbstractConsumerStage.java
+++ b/src/main/java/teetime/framework/AbstractConsumerStage.java
@@ -27,7 +27,7 @@ public abstract class AbstractConsumerStage<I> extends AbstractStage {
 	}
 
 	@Override
-	public final void executeStage() {
+	protected final void executeStage() {
 		final I element = this.getInputPort().receive();
 		if (null == element) {
 			returnNoElement();
diff --git a/src/main/java/teetime/framework/AbstractProducerStage.java b/src/main/java/teetime/framework/AbstractProducerStage.java
index 8ee88e59..783fafb9 100644
--- a/src/main/java/teetime/framework/AbstractProducerStage.java
+++ b/src/main/java/teetime/framework/AbstractProducerStage.java
@@ -36,7 +36,7 @@ public abstract class AbstractProducerStage<O> extends AbstractStage {
 	}
 
 	@Override
-	public void executeStage() {
+	protected void executeStage() {
 		try {
 			this.execute();
 		} catch (Exception e) {
diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index 96b71bb4..944df402 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -33,7 +33,7 @@ public abstract class AbstractStage extends Stage {
 
 	private InputPort<?>[] inputPorts = new InputPort<?>[0];
 	private OutputPort<?>[] outputPorts = new OutputPort<?>[0];
-	private StageState currentState = StageState.CREATED;
+	private StageState currentState = StageState.NOT_INITIALIZED;
 
 	@Override
 	public InputPort<?>[] getInputPorts() {
@@ -73,18 +73,18 @@ public abstract class AbstractStage extends Stage {
 	 * @return <code>true</code> if this stage has already received the given <code>signal</code>, <code>false</code> otherwise
 	 */
 	protected boolean signalAlreadyReceived(final ISignal signal, final InputPort<?> inputPort) {
-		if (this.triggeredSignals.contains(signal)) {
+		boolean signalAlreadyReceived = this.triggeredSignals.contains(signal);
+		if (signalAlreadyReceived) {
 			if (logger.isTraceEnabled()) {
 				logger.trace("Got signal: " + signal + " again from input port: " + inputPort);
 			}
-			return true;
 		} else {
 			if (logger.isTraceEnabled()) {
 				logger.trace("Got signal: " + signal + " from input port: " + inputPort);
 			}
 			this.triggeredSignals.add(signal);
-			return false;
 		}
+		return signalAlreadyReceived;
 	}
 
 	@Override
diff --git a/src/main/java/teetime/framework/StageState.java b/src/main/java/teetime/framework/StageState.java
index 02be6f57..45388ce5 100644
--- a/src/main/java/teetime/framework/StageState.java
+++ b/src/main/java/teetime/framework/StageState.java
@@ -17,6 +17,7 @@ package teetime.framework;
 
 public enum StageState {
 
+	NOT_INITIALIZED,
 	INITIALIZED,
 	CREATED,
 	VALIDATING, VALIDATED,
diff --git a/src/main/java/teetime/stage/InstanceOfFilter.java b/src/main/java/teetime/stage/InstanceOfFilter.java
index 1e72dd7e..61941323 100644
--- a/src/main/java/teetime/stage/InstanceOfFilter.java
+++ b/src/main/java/teetime/stage/InstanceOfFilter.java
@@ -58,7 +58,7 @@ public final class InstanceOfFilter<I, O extends I> extends AbstractConsumerStag
 	 *
 	 * @return the output port that is used when the element is a (sub)type of the internal type attribute
 	 *
-	 * @deprecated 1.1. Use {@link #getMatchedOutputPort()} instead.
+	 * @deprecated Since 1.1. Use {@link #getMatchedOutputPort()} instead.
 	 */
 	@Deprecated
 	public OutputPort<O> getOutputPort() {
-- 
GitLab