diff --git a/src/main/java/org/ahocorasick/trie/Trie.java b/src/main/java/org/ahocorasick/trie/Trie.java index ab4e962..4eb3ba1 100644 --- a/src/main/java/org/ahocorasick/trie/Trie.java +++ b/src/main/java/org/ahocorasick/trie/Trie.java @@ -2,7 +2,6 @@ package org.ahocorasick.trie; import org.ahocorasick.interval.IntervalTree; import org.ahocorasick.interval.Intervalable; -import org.ahocorasick.trie.configuration.ParseConfiguration; import org.ahocorasick.trie.handler.DefaultEmitHandler; import org.ahocorasick.trie.handler.EmitHandler; @@ -91,9 +90,7 @@ public class Trie { @SuppressWarnings("unchecked") public Collection parseText(String text) { DefaultEmitHandler emitHandler = new DefaultEmitHandler(); - parseText(new ParseConfiguration() - .setEmitHandler(emitHandler) - .setText(text)); + parseText(text, emitHandler); List collectedEmits = emitHandler.getEmits(); @@ -109,18 +106,17 @@ public class Trie { return collectedEmits; } - public void parseText(ParseConfiguration parseConfiguration) { + public void parseText(CharSequence text, EmitHandler emitHandler) { checkForConstructedFailureStates(); - int position = 0; State currentState = this.rootState; - for (Character character : parseConfiguration) { + for (int position = 0; position < text.length(); position++) { + Character character = text.charAt(position); if (trieConfig.isCaseInsensitive()) { character = Character.toLowerCase(character); } currentState = getState(currentState, character); - storeEmits(position, currentState, parseConfiguration.getEmitHandler()); - position++; + storeEmits(position, currentState, emitHandler); } } diff --git a/src/main/java/org/ahocorasick/trie/configuration/ParseConfiguration.java b/src/main/java/org/ahocorasick/trie/configuration/ParseConfiguration.java deleted file mode 100644 index d0ffb86..0000000 --- a/src/main/java/org/ahocorasick/trie/configuration/ParseConfiguration.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.ahocorasick.trie.configuration; - -import org.ahocorasick.trie.handler.EmitHandler; - -import java.io.Reader; -import java.util.Iterator; - -public class ParseConfiguration implements Iterable { - - private String text; - - private Reader reader; - - private EmitHandler emitHandler; - - public ParseConfiguration setText(String text) { - this.text = text; - return this; - } - - public ParseConfiguration setText(Reader reader) { - this.reader = reader; - return this; - } - - public ParseConfiguration setEmitHandler(EmitHandler emitHandler) { - this.emitHandler = emitHandler; - return this; - } - - public EmitHandler getEmitHandler() { - return emitHandler; - } - - @Override - public Iterator iterator() { - if (reader != null) { - return new ReaderIterator(reader); - } - return new StringIterator(text); - } - -} diff --git a/src/main/java/org/ahocorasick/trie/configuration/ReaderIterator.java b/src/main/java/org/ahocorasick/trie/configuration/ReaderIterator.java deleted file mode 100644 index e24ebd1..0000000 --- a/src/main/java/org/ahocorasick/trie/configuration/ReaderIterator.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.ahocorasick.trie.configuration; - -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.util.Iterator; - -public class ReaderIterator implements Iterator { - - private Reader reader; - - private int readCharacter; - - public ReaderIterator(Reader reader) { - this.reader = reader; - readIntoBuffer(); - } - - private void readIntoBuffer() { - try { - readCharacter = reader.read(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public boolean hasNext() { - return readCharacter != -1; - } - - @Override - public Character next() { - Character returnChar = (char)readCharacter; - readIntoBuffer(); - return returnChar; - } - - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - -} diff --git a/src/main/java/org/ahocorasick/trie/configuration/StringIterator.java b/src/main/java/org/ahocorasick/trie/configuration/StringIterator.java deleted file mode 100644 index b64f995..0000000 --- a/src/main/java/org/ahocorasick/trie/configuration/StringIterator.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ahocorasick.trie.configuration; - -import java.util.Iterator; - -public class StringIterator implements Iterator { - - private int counter = 0; - - private String text; - - public StringIterator(String text) { - this.text = text; - } - - @Override - public boolean hasNext() { - return counter < text.length(); - } - - @Override - public Character next() { - return text.charAt(counter++); - } - - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - -} diff --git a/src/test/java/org/ahocorasick/trie/TrieTest.java b/src/test/java/org/ahocorasick/trie/TrieTest.java index a593966..1ed76ef 100644 --- a/src/test/java/org/ahocorasick/trie/TrieTest.java +++ b/src/test/java/org/ahocorasick/trie/TrieTest.java @@ -1,6 +1,5 @@ package org.ahocorasick.trie; -import org.ahocorasick.trie.configuration.ParseConfiguration; import org.ahocorasick.trie.handler.EmitHandler; import org.junit.Test; @@ -73,7 +72,7 @@ public class TrieTest { emits.add(emit); } }; - trie.parseText(new ParseConfiguration().setText("ushers").setEmitHandler(emitHandler)); + trie.parseText("ushers", emitHandler); assertEquals(3, emits.size()); // she @ 3, he @ 3, hers @ 5 Iterator iterator = emits.iterator(); checkEmit(iterator.next(), 2, 3, "he"); diff --git a/src/test/java/org/ahocorasick/trie/configuration/ParseConfigurationTest.java b/src/test/java/org/ahocorasick/trie/configuration/ParseConfigurationTest.java deleted file mode 100644 index 600e1c0..0000000 --- a/src/test/java/org/ahocorasick/trie/configuration/ParseConfigurationTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.ahocorasick.trie.configuration; - -import org.junit.Test; - -import java.io.IOException; -import java.io.StringReader; - -import static org.junit.Assert.assertEquals; - -public class ParseConfigurationTest { - - @Test - public void reader() throws IOException { - StringReader reader = new StringReader("hällö"); - ParseConfiguration parseConfiguration = new ParseConfiguration().setText(reader); - assertIterator(parseConfiguration); - reader.close(); - } - - @Test - public void string() throws IOException { - ParseConfiguration parseConfiguration = new ParseConfiguration().setText("hällö"); - assertIterator(parseConfiguration); - } - - private void assertIterator(ParseConfiguration parseConfiguration) { - StringBuffer text = new StringBuffer(); - for (Character character : parseConfiguration) { - text.append(character); - } - assertEquals("hällö", text.toString()); - } -}