package org.geogebra.common.util; import java.util.Iterator; import java.util.List; /** * This interface defines the API that dictionaries for autocomplete components * must implement. Note that implementations of this interface should perform * look ups as quickly as possible to avoid delays as the user types. */ public interface AutoCompleteDictionary { /** * Adds an entry to the dictionary. * * @param s * The string to add to the dictionary. */ public void addEntry(String s); /** * @return word iterator */ public Iterator<String> getIterator(); /** * Removes an entry from the dictionary. * * @param s * The string to remove to the dictionary. * @return True if successful, false if the string is not contained or * cannot be removed. */ public boolean removeEntry(String s); /** * Perform a lookup and returns the closest matching string to the passed * string. * * @param s * The string to use as the base for the lookup. How this routine * is implemented determines the behaviour of the component. * Typically, the closest matching string that completely * contains the given string is returned. * @return null if no matching string, the closest matching string otherwise * */ public String lookup(String s); /** * Find all possible completions of the argument and return them. * * @param s * The string to use as the base for the lookup. How this routine * is implemented determines the behaviour of the component. * Typically, the closest matching string that completely * contains the given string is returned. * @return an iterable of strings if there is at least one completion, * otherwise null. */ public List<String> getCompletions(String s); /** * @param cmdPrefix * prefix * @return completions */ public List<String> getCompletionsKorean(String cmdPrefix); /** * @return number of completions */ public int size(); }