#53 Added AbstractStatefulEmitHandler, test shows the example of usage.
This commit is contained in:
parent
ea88eb987a
commit
d9a10a475a
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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<Emit> emits = new ArrayList<>();
|
||||
|
||||
public void addEmit(final Emit emit) {
|
||||
this.emits.add(emit);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Emit> getEmits() {
|
||||
return this.emits;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<Emit> 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<Emit> getEmits() {
|
||||
return this.emits;
|
||||
}
|
||||
};
|
||||
|
||||
trie.parseText("ushers", testEmitHandler);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user