package com.vci.server.portal.cache;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.vci.server.cache.redis.RedisUtil;
|
|
public abstract class UICacheBaseUtil<T> {//extends BaseCacheTimer {
|
protected static String TYPEMAP = "MAP-";
|
|
private String _cacheName = null;
|
private Class<T> _classType = null;
|
|
|
protected UICacheBaseUtil(String objType, Class<T> classType){
|
_cacheName = objType;
|
//super(objType);
|
|
_classType = classType;
|
}
|
|
protected String getName() {
|
return _cacheName;
|
}
|
|
|
protected List<T> getObjectList(){
|
List<T> lstObj = new ArrayList<T>();
|
|
Map<String, String> map = RedisUtil.getInstance().hgetAll(getName());
|
|
String[] keys = map.keySet().toArray(new String[0]);
|
for (int i = 0; i < keys.length; i++) {
|
if (keys[i].startsWith(TYPEMAP))
|
continue;
|
|
String json = map.get(keys[i]);
|
|
if (StringUtils.isBlank(json))
|
continue;
|
try {
|
T obj = JSONObject.parseObject(json, _classType);
|
lstObj.add(obj);
|
} catch (Exception e) {
|
//System.out.println(json);
|
e.printStackTrace();
|
}
|
}
|
|
return lstObj;
|
}
|
|
public T getObject(String oid){
|
if (StringUtils.isBlank(oid))
|
return null;
|
|
String jsonObj = RedisUtil.getInstance().hget(getName(), oid);
|
if (StringUtils.isBlank(jsonObj))
|
return null;
|
|
return JSONObject.parseObject(jsonObj, _classType);
|
}
|
|
// public T getObjectById(String oid) {
|
// if (StringUtils.isBlank(oid))
|
// return null;
|
//
|
// String jsonObj = RedisUtil.getInstance().hget(getName(), oid);
|
// if (StringUtils.isBlank(jsonObj))
|
// return null;
|
//
|
// return JSONObject.parseObject(jsonObj, _classType);
|
// }
|
|
|
public void delItem(String name){
|
if (StringUtils.isBlank(name))
|
return;
|
|
RedisUtil.getInstance().hdel(getName(), name.toLowerCase());
|
}
|
|
public abstract T[] getObjects();
|
public abstract void delObject(T obj);
|
public abstract void setObject(T obj);
|
}
|