package org.limewire.core.api.search;
import java.util.Collection;
import org.limewire.core.api.URN;
import org.limewire.io.GUID;
import org.limewire.listener.ListenerSupport;
import ca.odell.glazedlists.EventList;
/**
* Defines the API for the list of results for a single search.
* Implementations of SearchResultList should notify registered listeners when
* results are added to the list.
*/
public interface SearchResultList extends ListenerSupport<Collection<GroupedSearchResult>> {
/**
* Returns the GUID associated with the search. May be null if the search
* has not started, or if the search is a browse.
*/
GUID getGuid();
/**
* Returns the total number of results found.
*/
int getResultCount();
/**
* Returns the search associated with this list. Never null.
*/
Search getSearch();
/**
* Returns the query associated with the search.
*/
String getSearchQuery();
/**
* Returns the search result associated with the specified URN.
*/
GroupedSearchResult getGroupedResult(URN urn);
/**
* Returns the list of search results sorted and grouped by URN.
*/
EventList<GroupedSearchResult> getGroupedResults();
/**
* Clears all results.
*/
void clear();
/**
* Disposes of resources and removes listeners.
*/
void dispose();
}