package com.jdroid.android.usecase;
import java.util.Set;
import com.jdroid.android.search.SortingType;
import com.jdroid.java.collections.Sets;
import com.jdroid.java.search.PagedResult;
/**
* @param <T> item to search for
*/
public abstract class SearchUseCase<T> extends PaginatedUseCase<T> {
private static final long serialVersionUID = -6921635595717987983L;
private String searchValue;
private Set<T> selectedItems = Sets.newHashSet();
/**
* @see com.jdroid.android.usecase.PaginatedUseCase#doPopulate(int, int, com.jdroid.android.search.SortingType)
*/
@Override
protected final PagedResult<T> doPopulate(int page, int pageSize, SortingType sortingType) {
return doSearch(searchValue, page, pageSize, sortingType);
}
protected abstract PagedResult<T> doSearch(String searchValue, int page, int pageSize, SortingType sortingType);
/**
* @param searchValue the searchValue to set
*/
public void setSearchValue(String searchValue) {
this.searchValue = searchValue;
}
public Set<T> getSelectedItems() {
return selectedItems;
}
public void setSelectedItems(Set<T> selectedItems) {
this.selectedItems = selectedItems;
}
/**
* @return the searchValue
*/
public String getSearchValue() {
return searchValue;
}
}