From 4be3e115b6e36b8750d1b90f224017d8ce9a6272 Mon Sep 17 00:00:00 2001 From: Douglas Lovell Date: Wed, 28 Oct 2015 14:10:53 -0600 Subject: [PATCH] add builder method for setting word transitions --- src/main/java/org/ahocorasick/trie/Trie.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/ahocorasick/trie/Trie.java b/src/main/java/org/ahocorasick/trie/Trie.java index deed616..c8956d4 100644 --- a/src/main/java/org/ahocorasick/trie/Trie.java +++ b/src/main/java/org/ahocorasick/trie/Trie.java @@ -222,6 +222,8 @@ public class Trie { private final TrieConfig trieConfig = new TrieConfig(); private final Trie trie = new Trie(trieConfig); + + private boolean hasAddedKeyword = false; private TrieBuilder() {} @@ -240,11 +242,21 @@ public class Trie { return this; } - public TrieBuilder addKeyword(String keyword) { - trie.addKeyword(keyword); + public TrieBuilder wordTransitions() { + if (hasAddedKeyword) { + throw new IllegalStateException( + "Unable to switch to word transitions after keywords added"); + } + this.trieConfig.setWordTransitions(true); return this; } + public TrieBuilder addKeyword(String keyword) { + trie.addKeyword(keyword); + hasAddedKeyword = true; + return this; + } + public Trie build() { trie.constructFailureStates(); return trie;