private void expand() { final int newSize = 2 * table.length; @SuppressWarnings("unchecked") final Entry<V>[] newTable = new Entry[newSize]; for (Entry<V> entry : table) { Entry<V> temp = entry; while (temp != null) { put(newTable, temp.getKeyChar(), temp.getValue()); temp = temp.getNext(); } } table = newTable; }
private void collectMatches(final ACNode<T> node, final int index, final List<Match<T>> matches) { //direct hit or hit in chain of failure links? ACNode<T> tempNode = node; do{ if (tempNode.getValue() != null) { matches.add(new Match<T>(tempNode.getValue(), index - tempNode.getDepth(), tempNode.getDepth())); } tempNode = tempNode.getFailure(); }while (tempNode != root); }
public V get(final char key) { Entry<V> entry = table[key % table.length]; while (entry != null) { if (entry.getKeyChar() == key) { return entry.getValue(); } entry = entry.getNext(); } return null; }
@Override public void register(final String path, final T value) { trie.put(path, value); }
@Override public String process(final String text) { if (!prepared) { setReplacer.addReplacements(getMap()); prepared = true; } return setReplacer.replaceIn(text); }
@Override public List<T> get(final String path) { return trie.get(path); }
public void addReplacement(final String key, final String with) { matcher.put(key, with); }
public SimpleRegexTrie() { trie = new WildcardTrie<P>(); }
public List<P> get(final String key) { return trie.get(key); }
public Node<P> getNext(final char key){ return links.get(key); } }
ACNode<P> addNext(final char key){ return addNext(key, null); }
@Override public boolean isEmpty() { return size() == 0; }
Set<Entry<Character, ACNode<P>>> getLinks() { return links.entrySet(); }
Collection<ACNode<P>> getNext(){ return links.values(); }
public Node<P> addNext(final char key){ return addNext(key, null); }
ACNode<P> getNext(final char key){ return links.get(key); }
@Override public V get(final Object key) { if (key instanceof Character) { final Character beite = (Character) key; return get(beite.charValue()); } return null; }