Skip to content
Snippets Groups Projects
Commit 7016e6c7 authored by Nelson Tavares de Sousa's avatar Nelson Tavares de Sousa
Browse files

modded ToLowerCase to remove punctuation;

prototype works correctly, still no scaling
parent 73649526
No related branches found
No related tags found
No related merge requests found
......@@ -47,7 +47,6 @@ public class CountingMapMerger<T> extends AbstractConsumerStage<CountingMap<T>>
@Override
public void onTerminating() throws Exception {
System.out.println("TERMINATE");
port.send(result);
super.onTerminating();
}
......
......@@ -20,6 +20,7 @@ import teetime.framework.OutputPort;
/**
* Receives a string and passes it on to the next stage only with lower case letters.
* Punctuation and similar characters will be removed. Only [a-zA-Z ] will be passed on.
*
* @author Nelson Tavares de Sousa
*
......@@ -30,7 +31,7 @@ public class ToLowerCase extends AbstractConsumerStage<String> {
@Override
protected void execute(final String element) {
outputPort.send(element.toLowerCase());
outputPort.send(element.replaceAll("[^a-zA-Z ]", "").toLowerCase());
}
......
......@@ -32,7 +32,7 @@ public class WordCounter extends CompositeStage {
public WordCounter() {
lastStages.add(mapCounter);
IPipeFactory pipeFact = PipeFactoryRegistry.INSTANCE.getPipeFactory(ThreadCommunication.INTER, PipeOrdering.QUEUE_BASED, false);
IPipeFactory pipeFact = PipeFactoryRegistry.INSTANCE.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false);
ToLowerCase toLowerCase = new ToLowerCase();
pipeFact.create(tokenizer.getOutputPort(), toLowerCase.getInputPort());
pipeFact.create(toLowerCase.getOutputPort(), mapCounter.getInputPort());
......
......@@ -26,8 +26,8 @@ public class WordCountingConfiguration extends AnalysisConfiguration {
final Merger<CountingMap<String>> merger = new Merger<CountingMap<String>>();
// result
IPipeFactory interFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTER, PipeOrdering.QUEUE_BASED, false);
IPipeFactory intraFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false);
IPipeFactory intraFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTER, PipeOrdering.QUEUE_BASED, false);
IPipeFactory interFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false);
interFact.create(init.getOutputPort(), f2b.getInputPort());
interFact.create(f2b.getOutputPort(), b2s.getInputPort());
......@@ -39,6 +39,9 @@ public class WordCountingConfiguration extends AnalysisConfiguration {
interFact.create(merger.getOutputPort(), result.getInputPort());
addThreadableStage(init);
addThreadableStage(wc);
addThreadableStage(merger);
}
public CountingMap<String> getResult() {
......
package teetime.stage;
import java.io.File;
import java.util.Map;
import org.junit.Test;
import teetime.framework.Analysis;
import teetime.stage.util.CountingMap;
public class WordCountingTest {
......@@ -13,6 +15,10 @@ public class WordCountingTest {
WordCountingConfiguration wcc = new WordCountingConfiguration(new File("src/test/resources/data/output.txt"));
Analysis analysis = new Analysis(wcc);
analysis.start();
System.out.println(wcc.getResult().size());
CountingMap<String> map = wcc.getResult();
for (Map.Entry<String, Integer> entry : map.entrySet())
{
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}
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