package org.geogebra.desktop.gui.autocompletion;
import java.util.List;
/**
* Interface for specifying a custom completion provider.
*
* @param <T>
* The type of the completions options (most of the time this will be
* simple strings)
*/
public interface CompletionProvider<T> {
/**
* This method is called repeatedly while the user is typing. It should
* return a list of suitable completion options for the prefix.
*
* @param prefix
* The user input with a minimal length of 1
* @return A List of matching completion options (inclusive prefix)
*/
List<T> getCompletionOptions(String prefix);
/**
* Converts a completion option to a string which can be displayed.
*
* @param option
* @return The string which will be displayed in the options popup
*/
String toString(T option);
}