Skip to content
Snippets Groups Projects
Commit 2ec4223d authored by Christian Wulf's avatar Christian Wulf
Browse files

refactored WordCounter

parent 56739651
No related branches found
No related tags found
No related merge requests found
......@@ -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() {
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment