package com.gustz.dove.api.dict.service;
import java.util.List;
import java.util.Map;
import com.gustz.dove.api.dict.vo.DictVo;
import com.sinovatech.fw.api.service.DataService;
import com.sinovatech.fw.api.vo.Order;
/**
*
* TODO: 字典服务接口
*
* @author ZHENFENG ZHANG
* @since [Jan 19, 2015]
*/
public interface DictService extends DataService<DictVo, String> {
class InnerDict {
private String key;
private String text;
@SuppressWarnings("unused")
private InnerDict() {
}
public String getKey() {
return key;
}
public InnerDict(String key, String text) {
super();
this.key = key;
this.text = text;
}
public void setKey(String key) {
this.key = key;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
/**
* Get list by groupCode
*
* @param groupCode
* @return List<'DictService.InnerDict'>
*/
List<DictService.InnerDict> listGroup(String groupCode);
/**
* Get map by groupCode
*
* @param groupCode
* @return Map<'String, String'>
*/
Map<String, String> mapGroup(String groupCode);
/**
* Get map by groupCode
*
* @param groupCode
* @return Map<'String, String'>
*/
Map<String, String> mapGroup(Enum<?> groupCode);
/**
* Get text by groupCode and key
*
* @param groupCode
* @param key
* @return text
*/
String text(String groupCode, String key);
/**
* Get text by groupCode and key
*
* @param groupCode
* @param key
* @return text
*/
String text(Enum<?> groupCode, String key);
/**
* Get texts by groupCode and keys
*
* @param groupCode
* @param keys
* @return text1,text2,text3...
*/
String texts(String groupCode, String[] keys);
/**
* Get texts by groupCode and keys
*
* @param groupCode
* @param keys
* @return text1,text2,text3...
*/
String texts(Enum<?> groupCode, String[] keys);
/**
* Refresh dict
*/
void refreshDict();
/**
* 是否已存在KEY
*
* @param id
* @param groupCode
* @param dataKey
* @return
*/
boolean isExistKey(String id, String groupCode, String dataKey);
/**
* 是否已存在VALUE
*
* @param id
* @param groupCode
* @param dataValue
* @return
*/
boolean isExistValue(String id, String groupCode, String dataValue);
/**
* 分页查询
*
* @param search
* @param start
* @param limit
* @param orders
* @return
*/
List<DictVo> ecList(DictVo search, int start, int limit, List<Order> orders);
/**
* 查询全部
*
* @return
*/
List<DictVo> listAll();
/**
* 查询总记录数
*
* @param search
* @return
*/
int ecCount(DictVo search);
/**
* 是否存在外键的字典
*
* @param groupCode
* @return
*/
boolean isExistFkDict(String groupCode);
}