From c75454eda62d1d1d5212c8f95b44284c3c43934f Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Fri, 21 Aug 2015 21:29:00 +0200
Subject: [PATCH] made ports final, again; added logging to A3PipeInstantiation

---
 .../teetime/framework/A3PipeInstantiation.java    | 15 ++++++++++++++-
 .../java/teetime/framework/AbstractStage.java     |  4 +++-
 src/main/java/teetime/framework/InputPort.java    |  2 +-
 src/main/java/teetime/framework/OutputPort.java   |  2 +-
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/main/java/teetime/framework/A3PipeInstantiation.java b/src/main/java/teetime/framework/A3PipeInstantiation.java
index 4bbe1a9c..e5b6ea06 100644
--- a/src/main/java/teetime/framework/A3PipeInstantiation.java
+++ b/src/main/java/teetime/framework/A3PipeInstantiation.java
@@ -18,6 +18,9 @@ package teetime.framework;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import teetime.framework.Traverser.VisitorBehavior;
 import teetime.framework.pipe.IPipe;
 import teetime.framework.pipe.IPipeFactory;
@@ -31,6 +34,8 @@ import teetime.framework.pipe.UnboundedSpScPipeFactory;
  */
 class A3PipeInstantiation implements ITraverserVisitor {
 
+	private static final Logger LOGGER = LoggerFactory.getLogger(A3PipeInstantiation.class);
+
 	private static final IPipeFactory interBoundedThreadPipeFactory = new SpScPipeFactory();
 	private static final IPipeFactory interUnboundedThreadPipeFactory = new UnboundedSpScPipeFactory();
 	private static final IPipeFactory intraThreadPipeFactory = new SingleElementPipeFactory();
@@ -67,14 +72,22 @@ class A3PipeInstantiation implements ITraverserVisitor {
 			// inter
 			if (pipe.capacity() != 0) {
 				interBoundedThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), pipe.capacity());
+				if (LOGGER.isDebugEnabled()) {
+					LOGGER.debug("Connected (bounded) " + pipe.getSourcePort() + " and " + pipe.getTargetPort());
+				}
 			} else {
 				interUnboundedThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), 4);
+				if (LOGGER.isDebugEnabled()) {
+					LOGGER.debug("Connected (unbounded) " + pipe.getSourcePort() + " and " + pipe.getTargetPort());
+				}
 			}
 		} else {
 			// normal or reflexive pipe => intra
 			intraThreadPipeFactory.create(pipe.getSourcePort(), pipe.getTargetPort(), 4);
+			if (LOGGER.isDebugEnabled()) {
+				LOGGER.debug("Connected (unsynch) " + pipe.getSourcePort() + " and " + pipe.getTargetPort());
+			}
 		}
 
 	}
-
 }
diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index 6a6769ca..64962178 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -91,7 +91,9 @@ public abstract class AbstractStage extends Stage {
 
 	private void changeState(final StageState newState) {
 		currentState = newState;
-		logger.trace(newState.toString());
+		if (logger.isTraceEnabled()) {
+			logger.trace(newState.toString());
+		}
 	}
 
 	@Override
diff --git a/src/main/java/teetime/framework/InputPort.java b/src/main/java/teetime/framework/InputPort.java
index a11035a3..d4409bb1 100644
--- a/src/main/java/teetime/framework/InputPort.java
+++ b/src/main/java/teetime/framework/InputPort.java
@@ -24,7 +24,7 @@ package teetime.framework;
  *
  * @since 1.0
  */
-public class InputPort<T> extends AbstractPort<T> {
+public final class InputPort<T> extends AbstractPort<T> {
 
 	InputPort(final Class<T> type, final Stage owningStage, final String portName) {
 		super(type, owningStage, portName);
diff --git a/src/main/java/teetime/framework/OutputPort.java b/src/main/java/teetime/framework/OutputPort.java
index 7bdb677d..0f2db809 100644
--- a/src/main/java/teetime/framework/OutputPort.java
+++ b/src/main/java/teetime/framework/OutputPort.java
@@ -28,7 +28,7 @@ import teetime.framework.signal.TerminatingSignal;
  *
  * @since 1.0
  */
-public class OutputPort<T> extends AbstractPort<T> {
+public final class OutputPort<T> extends AbstractPort<T> {
 
 	OutputPort(final Class<T> type, final Stage owningStage, final String portName) {
 		super(type, owningStage, portName);
-- 
GitLab