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>> ...@@ -47,7 +47,6 @@ public class CountingMapMerger<T> extends AbstractConsumerStage<CountingMap<T>>
@Override @Override
public void onTerminating() throws Exception { public void onTerminating() throws Exception {
System.out.println("TERMINATE");
port.send(result); port.send(result);
super.onTerminating(); super.onTerminating();
} }
......
...@@ -20,6 +20,7 @@ import teetime.framework.OutputPort; ...@@ -20,6 +20,7 @@ import teetime.framework.OutputPort;
/** /**
* Receives a string and passes it on to the next stage only with lower case letters. * 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 * @author Nelson Tavares de Sousa
* *
...@@ -30,7 +31,7 @@ public class ToLowerCase extends AbstractConsumerStage<String> { ...@@ -30,7 +31,7 @@ public class ToLowerCase extends AbstractConsumerStage<String> {
@Override @Override
protected void execute(final String element) { 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 { ...@@ -32,7 +32,7 @@ public class WordCounter extends CompositeStage {
public WordCounter() { public WordCounter() {
lastStages.add(mapCounter); 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(); ToLowerCase toLowerCase = new ToLowerCase();
pipeFact.create(tokenizer.getOutputPort(), toLowerCase.getInputPort()); pipeFact.create(tokenizer.getOutputPort(), toLowerCase.getInputPort());
pipeFact.create(toLowerCase.getOutputPort(), mapCounter.getInputPort()); pipeFact.create(toLowerCase.getOutputPort(), mapCounter.getInputPort());
......
...@@ -26,8 +26,8 @@ public class WordCountingConfiguration extends AnalysisConfiguration { ...@@ -26,8 +26,8 @@ public class WordCountingConfiguration extends AnalysisConfiguration {
final Merger<CountingMap<String>> merger = new Merger<CountingMap<String>>(); final Merger<CountingMap<String>> merger = new Merger<CountingMap<String>>();
// result // result
IPipeFactory interFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTER, PipeOrdering.QUEUE_BASED, false); IPipeFactory intraFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTER, PipeOrdering.QUEUE_BASED, false);
IPipeFactory intraFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false); IPipeFactory interFact = PIPE_FACTORY_REGISTRY.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false);
interFact.create(init.getOutputPort(), f2b.getInputPort()); interFact.create(init.getOutputPort(), f2b.getInputPort());
interFact.create(f2b.getOutputPort(), b2s.getInputPort()); interFact.create(f2b.getOutputPort(), b2s.getInputPort());
...@@ -39,6 +39,9 @@ public class WordCountingConfiguration extends AnalysisConfiguration { ...@@ -39,6 +39,9 @@ public class WordCountingConfiguration extends AnalysisConfiguration {
interFact.create(merger.getOutputPort(), result.getInputPort()); interFact.create(merger.getOutputPort(), result.getInputPort());
addThreadableStage(init);
addThreadableStage(wc);
addThreadableStage(merger);
} }
public CountingMap<String> getResult() { public CountingMap<String> getResult() {
......
package teetime.stage; package teetime.stage;
import java.io.File; import java.io.File;
import java.util.Map;
import org.junit.Test; import org.junit.Test;
import teetime.framework.Analysis; import teetime.framework.Analysis;
import teetime.stage.util.CountingMap;
public class WordCountingTest { public class WordCountingTest {
...@@ -13,6 +15,10 @@ public class WordCountingTest { ...@@ -13,6 +15,10 @@ public class WordCountingTest {
WordCountingConfiguration wcc = new WordCountingConfiguration(new File("src/test/resources/data/output.txt")); WordCountingConfiguration wcc = new WordCountingConfiguration(new File("src/test/resources/data/output.txt"));
Analysis analysis = new Analysis(wcc); Analysis analysis = new Analysis(wcc);
analysis.start(); 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