diff --git a/src/main/java/org/ahocorasick/trie/Trie.java b/src/main/java/org/ahocorasick/trie/Trie.java index b618289..23ba9d1 100644 --- a/src/main/java/org/ahocorasick/trie/Trie.java +++ b/src/main/java/org/ahocorasick/trie/Trie.java @@ -286,7 +286,9 @@ public class Trie { if (emits != null && !emits.isEmpty()) { for (final String emit : emits) { emitted = emitHandler.emit(new Emit(position - emit.length() + 1, position, emit)) || emitted; - if(emitted && trieConfig.isStopOnHit()) break; + if (emitted && trieConfig.isStopOnHit()) { + break; + } } } diff --git a/src/main/java/org/ahocorasick/trie/handler/AbstractStatefulEmitHandler.java b/src/main/java/org/ahocorasick/trie/handler/AbstractStatefulEmitHandler.java new file mode 100644 index 0000000..eaa170c --- /dev/null +++ b/src/main/java/org/ahocorasick/trie/handler/AbstractStatefulEmitHandler.java @@ -0,0 +1,21 @@ +package org.ahocorasick.trie.handler; + +import java.util.ArrayList; +import java.util.List; + +import org.ahocorasick.trie.Emit; + +public abstract class AbstractStatefulEmitHandler implements StatefulEmitHandler { + + private final List emits = new ArrayList<>(); + + public void addEmit(final Emit emit) { + this.emits.add(emit); + } + + @Override + public List getEmits() { + return this.emits; + } + +} diff --git a/src/test/java/org/ahocorasick/trie/TrieTest.java b/src/test/java/org/ahocorasick/trie/TrieTest.java index c185924..bf01589 100644 --- a/src/test/java/org/ahocorasick/trie/TrieTest.java +++ b/src/test/java/org/ahocorasick/trie/TrieTest.java @@ -1,5 +1,6 @@ package org.ahocorasick.trie; +import org.ahocorasick.trie.handler.AbstractStatefulEmitHandler; import org.ahocorasick.trie.handler.EmitHandler; import org.ahocorasick.trie.handler.StatefulEmitHandler; import org.junit.Test; @@ -110,8 +111,7 @@ public class TrieTest { .stopOnHit() .build(); - StatefulEmitHandler testEmitHandler = new StatefulEmitHandler() { - private final List emits = new ArrayList<>(); + StatefulEmitHandler testEmitHandler = new AbstractStatefulEmitHandler() { boolean first = true; @Override @@ -121,14 +121,10 @@ public class TrieTest { first = false; return false; } - this.emits.add(emit); + addEmit(emit); return true; } - @Override - public List getEmits() { - return this.emits; - } }; trie.parseText("ushers", testEmitHandler);