package org.howsun.dao;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
public interface Seeker extends Serializable {
/**排序字段**/
public static final Map<String, String> ORDER_FIELDS = new LinkedHashMap<String, String>();
/**排序方式**/
public static final Map<Boolean, String> ORDER_TYPE = new LinkedHashMap<Boolean, String>(2,1);
/**
* 获取排序字段
* @return
*/
public String getOrderField();
/**覆盖排序字段**/
public void setOrderField(String orderField);
/**排序方式**/
public boolean isAsc();
/**重新设置排序方式**/
public void setAsc(boolean isAsc);
/**是否有条件**/
public boolean hasConditioned();
///////////////////////////////////////////////////Building MongoDB Querrier////////////////////////////////////////////////////////
/**
* 创建查询器
* @return
*/
public Query buildQuery();
/**
* 创建条件
* @return
*/
public Criteria buildCriteria();
///////////////////////////////////////////////////Building RDBMS Condition////////////////////////////////////////////////////////
/**
* 创建针对于RDBMS的HowsunDao查寻条件
* @return
*/
public RQLConditionbind buildRQL();
///////////////////////////////////////////////////Building Order////////////////////////////////////////////////////////
/**
* 添加排序字段
* @param addField
* @param isAsc
* @param isReplace 是否保留已有的排序字段
* @return
*/
public OrderBean addOrderBean(String addField, boolean isAsc, boolean isReplace);
/**
* 获取排序对象
* @return
*/
public OrderBean getOrderBean();
}