package org.limewire.ui.swing.filter;
import org.limewire.core.api.search.SearchCategory;
import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.matchers.MatcherEditor;
/**
* Defines a source for filterable data. Known implementations include
* {@link org.limewire.ui.swing.search.model.SearchResultsModel SearchResultsModel}.
*/
public interface FilterableSource<E extends FilterableItem> {
/**
* Returns the filter category.
*/
SearchCategory getFilterCategory();
/**
* Returns the filter debugger.
*/
FilterDebugger<E> getFilterDebugger();
/**
* Returns an unfiltered list of items.
*/
EventList<E> getUnfilteredList();
/**
* Returns a filtered list of items.
*/
EventList<E> getFilteredList();
/**
* Sets the MatcherEditor used to filter items.
*/
void setFilterEditor(MatcherEditor<E> editor);
}