package com.jdroid.java.search;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.jdroid.java.collections.Lists;
/**
* Represents a list result in a paginated API call.
*
* @param <T> The list item.
*/
public class PagedResult<T> {
private Boolean lastPage;
private List<T> results;
public PagedResult(List<T> results, Boolean lastPage) {
this.results = results;
this.lastPage = lastPage;
}
/**
* @param lastPage Whether the paginates list contains the last page or not.
*/
public PagedResult(Boolean lastPage) {
this(Lists.<T>newArrayList(), lastPage);
}
public PagedResult(List<T> results) {
this(results, true);
}
public PagedResult() {
this(true);
}
/**
* Adds a result item to the list.
*
* @param result The result to add.
*/
public void addResult(T result) {
results.add(result);
}
/**
* Adds result items to the list.
*
* @param results The results to add.
*/
public void addResults(Collection<T> results) {
this.results.addAll(results);
}
/**
* @return the results
*/
public List<T> getResults() {
return results;
}
public void sortResults(Comparator<T> comparator) {
Collections.sort(results, comparator);
}
/**
* @return the lastPage
*/
public boolean isLastPage() {
return lastPage;
}
}