class DefaultDropDownSelectionDataModel implements DropDownTextFieldDataModel<T> {

	@Override
	public List<T> getMatchingData(String searchText) {
		List<?> l = data;
		int startIndex = Collections.binarySearch(l, (Object) searchText, comparator);
		int endIndex = Collections.binarySearch(l, (Object) (searchText + END_CHAR), comparator);

		// the binary search returns a negative, incremented position if there is no match in the
		// list for the given search
		if (startIndex < 0) {
			startIndex = -startIndex - 1;
		}

		if (endIndex < 0) {
			endIndex = -endIndex - 1;
		}

		return data.subList(startIndex, endIndex);
	}

	public  DefaultDropDownSelectionDataModel(List<T> data,
			DataToStringConverter<T> searchConverter);
	public  DefaultDropDownSelectionDataModel(List<T> data, DataToStringConverter<T> searchConverter,
			DataToStringConverter<T> descriptionConverter);

}