package com.vci.server.portal.cache; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.vci.server.cache.redis.RedisUtil; import com.vci.server.portal.entity.PLActionClsEntity; import com.vci.server.portal.service.PLActionEntityService; import com.vci.server.portal.tools.ServerTool; import com.alibaba.fastjson.JSONObject; import com.vci.corba.common.VCIError; import com.vci.corba.portal.data.PLActionCls; /** * actioncls缓存 * @author zhangxg * */ public class ActionClsCacheUtil extends UICacheBaseUtil{ private static volatile ActionClsCacheUtil instance = null; private ActionClsCacheUtil(){ super(UICacheNames.ACTIONCLS, PLActionCls.class); } public static void initCache() { try { getInstance().initActionCls(); } catch (Throwable e) { e.printStackTrace(); } } public static ActionClsCacheUtil getInstance() { if (instance == null) { synchronized (ActionClsCacheUtil.class) { if (instance == null) { instance = new ActionClsCacheUtil(); } } } return instance; } @Override public void setObject(PLActionCls obj) { if (obj == null) return; String jsonObj = JSONObject.toJSONString(obj); RedisUtil.getInstance().hset(getName(), obj.name.toLowerCase(), jsonObj); } @Override public PLActionCls[] getObjects() { List list = getObjectList(); return list.toArray(new PLActionCls[0]); } @Override public void delObject(PLActionCls obj) { if (obj == null || StringUtils.isBlank(obj.name)) return; RedisUtil.getInstance().hdel(getName(), obj.name.toLowerCase()); } private void initActionCls() throws VCIError{ RedisUtil.getInstance().del(getName()); List clsList = PLActionEntityService.getInstance().getAllActionCls(); for(int i = 0; i < clsList.size(); i++) { PLActionClsEntity entity = clsList.get(i); setObject(ServerTool.getPLActionCls(entity)); } } }