package lt.inventi.wicket.component.autocomplete; import java.util.HashMap; import java.util.Map; /** * Provides an id and a label parameter. */ public abstract class AbstractSearchProvider<S> implements AutocompleteSearchProvider<S>, AutocompleteDataValueProvider<S> { @Override public Map<String, String> getJsonParameters(S item) { Map<String, String> map = new HashMap<String, String>(); map.put(Autocomplete.LABEL_PARAM, extractSearchLabel(item)); map.put(Autocomplete.ID_PARAM, extractId(item)); map.put(Autocomplete.VALUE_PARAM, extractValue(item)); return map; } protected abstract String extractSearchLabel(S item); protected abstract String extractId(S item); }