package org.limewire.rest;
import java.util.Collections;
import java.util.Map;
import org.limewire.core.api.FilePropertyKey;
import org.limewire.core.api.search.SearchCategory;
import org.limewire.core.api.search.SearchDetails;
/**
* Implementation of SearchDetails for REST search requests.
*/
class RestSearchDetails implements SearchDetails {
private final String query;
private final SearchCategory searchCategory;
private final SearchType searchType;
private final Map<FilePropertyKey, String> advancedSearch;
/**
* Constructs a new RestSearchDetails with the specified parameters.
*/
private RestSearchDetails(String query, SearchCategory searchCategory,
SearchType searchType, Map<FilePropertyKey, String> advancedSearch) {
this.query = query;
this.searchCategory = searchCategory;
this.searchType = searchType;
this.advancedSearch = advancedSearch;
}
/**
* Returns a new instance of RestSearchDetails using the specified search
* query.
*/
public static RestSearchDetails createKeywordSearch(String query) {
return new RestSearchDetails(query, SearchCategory.ALL, SearchType.KEYWORD,
Collections.<FilePropertyKey, String>emptyMap());
}
@Override
public Map<FilePropertyKey, String> getAdvancedDetails() {
return advancedSearch;
}
@Override
public SearchCategory getSearchCategory() {
return searchCategory;
}
@Override
public String getSearchQuery() {
return query;
}
@Override
public SearchType getSearchType() {
return searchType;
}
}