From 2ec4223d265ebf5aad0b6525f5fc4853b8d54bca Mon Sep 17 00:00:00 2001 From: Christian Wulf <chw@informatik.uni-kiel.de> Date: Wed, 24 Jun 2015 13:28:17 +0200 Subject: [PATCH] refactored WordCounter --- .../teetime/stage/string/WordCounter.java | 19 +++++-------------- .../java/teetime/framework/TraversorTest.java | 3 +-- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/main/java/teetime/stage/string/WordCounter.java b/src/main/java/teetime/stage/string/WordCounter.java index 08e10ed9..1508c15e 100644 --- a/src/main/java/teetime/stage/string/WordCounter.java +++ b/src/main/java/teetime/stage/string/WordCounter.java @@ -15,13 +15,10 @@ */ package teetime.stage.string; -import java.util.ArrayList; - import teetime.framework.AbstractCompositeStage; import teetime.framework.ConfigurationContext; import teetime.framework.InputPort; import teetime.framework.OutputPort; -import teetime.framework.Stage; import teetime.stage.MappingCounter; import teetime.stage.util.CountingMap; @@ -36,24 +33,18 @@ import teetime.stage.util.CountingMap; */ public final class WordCounter extends AbstractCompositeStage { - // This fields are needed for the methods to work. - private final Tokenizer tokenizer = new Tokenizer(" "); - private final MappingCounter<String> mapCounter = new MappingCounter<String>(); - private final ArrayList<Stage> lastStages = new ArrayList<Stage>(); + private final Tokenizer tokenizer; + private final MappingCounter<String> mapCounter; - // The connection of the different stages is realized within the construction of a instance of this class. public WordCounter(final ConfigurationContext context) { super(context); - this.lastStages.add(this.mapCounter); + + this.tokenizer = new Tokenizer(" "); final ToLowerCase toLowerCase = new ToLowerCase(); + this.mapCounter = new MappingCounter<String>(); connectPorts(this.tokenizer.getOutputPort(), toLowerCase.getInputPort()); connectPorts(toLowerCase.getOutputPort(), this.mapCounter.getInputPort()); - // connectStages(wordcharacterFilter.getOutputPort(), this.mapCounter.getInputPort()); - } - - public Stage getFirstStage() { - return this.tokenizer; } public InputPort<String> getInputPort() { diff --git a/src/test/java/teetime/framework/TraversorTest.java b/src/test/java/teetime/framework/TraversorTest.java index 0b312dcd..dcbb167a 100644 --- a/src/test/java/teetime/framework/TraversorTest.java +++ b/src/test/java/teetime/framework/TraversorTest.java @@ -83,8 +83,7 @@ public class TraversorTest { connectPorts(distributor.getNewOutputPort(), wc.getInputPort()); connectPorts(wc.getOutputPort(), merger.getNewInputPort()); // Add WordCounter as a threadable stage, so it runs in its own thread - addThreadableStage(wc.getFirstStage()); - + addThreadableStage(wc.getInputPort().getOwningStage()); } // Connect the stages of the last part -- GitLab