package org.nutz.dao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.nutz.castor.Castors;
import org.nutz.dao.pager.Pager;
/**
* 封装了一个分页查询的结果集合,包括本页数据列表以及分页信息
* @author zozoh(zozohtnt@gmail.com)
* @author wendal(wendal1985@gmail.com)
*
* @see org.nutz.dao.pager.Pager
*/
public class QueryResult implements Serializable {
private static final long serialVersionUID = 5104522523949248573L;
private List<?> list;
private Pager pager;
/**
* 新建一个分页查询的结果集合
*/
public QueryResult() {}
/**
* 一个分页查询的结果集合
* @param list 查询结果
* @param pager 分页对象
*/
public QueryResult(List<?> list, Pager pager) {
this.list = list;
this.pager = pager;
}
/**
* 获取结果集
* @return 结果集
*/
public List<?> getList() {
return list;
}
/**
* 按特定泛型获取结果集,属于直接强转,不带转换
* @param eleType 泛型
* @return 结果集
*/
@SuppressWarnings("unchecked")
public <T> List<T> getList(Class<T> eleType) {
return (List<T>) list;
}
/**
* 转换为特定类型的结果集
* @param eleType 新的结果集
* @return 特定类型的结果集
*/
@SuppressWarnings("unchecked")
public <T> List<T> convertList(Class<T> eleType) {
if (null == list || list.isEmpty())
return (List<T>) list;
List<T> re = new ArrayList<T>(list.size());
Castors castors = Castors.me();
for (Object obj : list)
re.add(castors.castTo(obj, eleType));
return re;
}
/**
* 设置结果集
* @param list 结果集
* @return 当前对象,用于链式调用
*/
public QueryResult setList(List<?> list) {
this.list = list;
return this;
}
/**
* 获取分页对象
* @return 分页对象
*/
public Pager getPager() {
return pager;
}
/**
* 设置分页对象
* @param pager 分页对象
* @return 当前对象,用于链式调用
*/
public QueryResult setPager(Pager pager) {
this.pager = pager;
return this;
}
}