package org.springblade.modules.words.internals; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class TrieNode implements Comparable { public int Index; public int Layer; public boolean End; public char Char; public List Results; public HashMap m_values; public TrieNode Failure; public TrieNode Parent; public boolean IsWildcard; public int WildcardLayer; public boolean HasWildcard; public TrieNode() { m_values = new HashMap(); Results = new ArrayList(); } public TrieNode Add(final Character c) { if (m_values.containsKey(c)) { return m_values.get(c); } final TrieNode node = new TrieNode(); node.Parent = this; node.Char = c; m_values.put(c, node); return node; } public void SetResults(final Integer index) { if (End == false) { End = true; } if (Results.contains(index) == false) { Results.add(index); } } @Override public int compareTo(final TrieNode o) { return this.Layer - o.Layer ; } }