package edu.mit.mitmobile2.objs; import java.util.ArrayList; import java.util.List; public class SearchResults<ResultItem> { private ArrayList<ResultItem> mResultsList = new ArrayList<ResultItem>(); private String mSearchTerm; // used if there are more total results than shown in the results Lists private Integer mTotalResultsCount = null; // used to indicate the result is only partial private boolean mIsPartialResult = false; public SearchResults(String searchTerm, List<ResultItem> resultsList) { mResultsList.addAll(resultsList); mSearchTerm = searchTerm; } public void markAsComplete() { mIsPartialResult = false; } public Integer getCount(){ return mResultsList.size(); } public void markAsPartialWithUnknownTotal() { mTotalResultsCount = null; mIsPartialResult = true; } public void markAsPartialWithTotalCount(Integer totalResultsCount) { mTotalResultsCount = totalResultsCount; mIsPartialResult = true; } public List<ResultItem> getResultsList() { return mResultsList; } public void removeItem(int index){ mResultsList.remove(index); } public String getSearchTerm() { return mSearchTerm; } public boolean isPartialResult() { return mIsPartialResult; } public Integer totalResultsCount() { return mTotalResultsCount; } public int getItemPosition(ResultItem item) { return mResultsList.indexOf(item); } public void addMoreResults(List<ResultItem> moreResults) { mResultsList.addAll(moreResults); if (mTotalResultsCount != null) { if (mResultsList.size() == mTotalResultsCount) { mIsPartialResult = false; } } } }