package jef.database.wrapper.populator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import jef.database.Session;
import jef.database.jdbc.result.IResultSet;
import jef.database.query.EntityMappingProvider;
public interface ResultSetPopulator {
/**
* 拼装成简单对象
*
* @param rs
* @param clz
* @return
*/
public <T> List<T> toSimpleObjects(IResultSet rs, Class<T> clz);
/**
* 简单对象列举
*
* @param rs
* @param clz
* @return
*/
public <T> Iterator<T> iteratorSimple(IResultSet rs, Class<T> clz);
/**
* 查询结果的包装
*
* @param rs
* ResultSet对象
* @param obj
* 要封装成的对象的实例
* @param j
* 连接对象
* @return
*/
public <T> List<T> toJavaObject(Session session,IResultSet rs, EntityMappingProvider j, Transformer transformers);
/**
* 标准拼装列举
*
* @param rs
* @param clz
* @param j
* @return
*/
public <T> Iterator<T> iteratorNormal(Session session,IResultSet rs, EntityMappingProvider j, Transformer transformers);
/**
* 拼装成多个数据对象
*
* @param rs
* @param j
* @return
*/
public List<Object[]> toDataObjectMap(IResultSet rs, EntityMappingProvider j,Transformer transformers);
/**
* 多对象拼装列举
*
* @param rs
* @param j
* @return
*/
public Iterator<Object[]> iteratorMultipie(IResultSet rs, EntityMappingProvider j,Transformer transformers);
/**
* 平面模式拼装
*
* @param <T>
* @param rs
* @param clz
* @param strategy
* @return
*/
public <T> List<T> toPlainJavaObject(IResultSet rs, Transformer transformers);
/**
* 平面模式列举
*
* @param rs
* @param clz
* @param strategy
* @return
*/
public <T> Iterator<T> iteratorPlain(IResultSet rs, Transformer transformers);
/**
* Map模式例举
* @param rs
* @param strategy
* @return
*/
public Iterator<Map<String,Object>> iteratorMap(IResultSet rs, Transformer transformers);
/**
* 转换为Map
*
* @param rs
* @param strategy
* @return
*/
public List<Map<String,Object>> toVar(IResultSet rs,Transformer transformers);
}