package com.vci.client.uif.actions.client; import java.util.HashMap; import java.util.Map; import com.vci.client.omd.provider.ApProvider; import com.vci.client.omd.statepool.StatePoolStart; import com.vci.corba.omd.atm.AttribItem; import com.vci.corba.omd.stm.StatePool; /** * 客户端缓存 * 缓存表单、列表中常用的需要转译的数据库信息 * @author VCI * */ public class UIFCache { /** * 缓存对象 */ private static UIFCache cache = new UIFCache(); /** * 生命周期状态池缓存 * */ private StatePool[] statePools = null; /** * 枚举类型缓存 * key:btmName + "#" + attrName + "#" + key */ private Map sysEnumMap = new HashMap(); /** * 属性池缓存 */ private HashMap attrItemMap = null; /** * 构造器 */ private UIFCache(){} /** * 获得缓存对象实例 * @return */ public static UIFCache getInstance(){ return cache; } /** * 获得生命周期状态池信息 * @return * @throws Exception */ public StatePool[] getStatePools() throws Exception{ if(statePools == null) { statePools = StatePoolStart.getService().getStatePools(); } return statePools; } /** * 枚举类型缓存 * key:btmName + "#" + attrName + "#" + key * @return */ public Map getSysEnumMap(){ return sysEnumMap; } /** * 获得属性池集合 */ public Map getAllAttributeMap() { if (attrItemMap == null){ attrItemMap = new HashMap(); } if(attrItemMap.isEmpty()) { AttribItem[] attrItems = ApProvider.getAllAbItems(); for (AttribItem attrItem : attrItems) { attrItemMap.put(attrItem.name, attrItem); } } return attrItemMap; } }