package com.vci.server.omd.enumtype.delegate; import com.vci.server.base.exception.ExceptionLocalHandler; import com.vci.server.cache.OMCacheProvider; import com.vci.server.omd.enumtype.cache.EnumServerCacheUtil; import com.vci.server.omd.enumtype.service.EnumService; import java.util.ArrayList; import java.util.List; import com.vci.common.exception.VciExceptionTool; import com.vci.corba.common.VCIError; import com.vci.corba.omd.etm.EnumItem; public class EnumTypeServerDelegate implements IEnumServerDelegate{ private static EnumTypeServerDelegate instance; public static EnumTypeServerDelegate getInstance() { if (instance == null) { instance = new EnumTypeServerDelegate(); } return instance; } protected VCIError getLocalVciError(String key, Throwable e) { VCIError error = null; if (e == null) { error = new VCIError(key, new String[0]); } else { error = new VCIError(key, new String[]{VciExceptionTool.getExceptionStr(e), VciExceptionTool.getExceptionDetail(e)}); } VCIError rsError = ExceptionLocalHandler.getInstance().getLocalString(error, "PLMENUM"); return rsError; } /** * 查询枚举 */ public EnumItem[] getEmItems(String filter, int start, int rows) throws VCIError { return OMCacheProvider.getEnumTypeByFilter(filter); //return EnumServerCacheUtil.getInstance().getEmItems(filter, start, rows); } /** * 检查枚举名是否存在 */ @Override public boolean checkRowIsExists(String name) throws VCIError { return OMCacheProvider.existEnumType(name); //return EnumServerCacheUtil.getInstance().checkRowIsExists(name); } /** * 根据枚举类型查询枚举 */ public EnumItem[] getEmItemsByType(String type) throws VCIError { EnumItem[] eis = OMCacheProvider.getEnumTypeByFilter(""); EnumService es = new EnumService(); List emItemList = new ArrayList(); try{ for (EnumItem em : eis) { if (type.equals(em.type)) { EnumItem eiRes = es.FilterSecretGrade(em); emItemList.add(eiRes); } } }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010PLMENUM-00006", e); } return emItemList.toArray(new EnumItem[emItemList.size()]); //return EnumServerCacheUtil.getInstance().getEmItemsByType(type); } /** * 根据枚举名字查询枚举 */ public EnumItem getEmItemByName(String name) throws VCIError { return OMCacheProvider.getEnumType(name); } @Override public boolean addEmItem(EnumItem emItem) throws VCIError { try{ boolean success = EnumService.getInstance().addEmItem(emItem); if (success) { EnumServerCacheUtil.setEnumType(emItem); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010PLMENUM-00001", e); } } @Override public boolean deleteEmItem(EnumItem em) throws VCIError { try{ boolean success = EnumService.getInstance().deleteEmItem(em); if (success) { EnumServerCacheUtil.delEnumType(em.name); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010PLMENUM-00003", e); } } @Override public boolean deleteEmItems(EnumItem[] emItems) throws VCIError { try{ boolean success = EnumService.getInstance().deleteEmItems(emItems); if (success) { for (int i = 0; i < emItems.length; i++) EnumServerCacheUtil.delEnumType(emItems[i].name); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010PLMENUM-00003", e); } } @Override public boolean modifyEmItem(EnumItem emItem) throws VCIError { try{ boolean success = EnumService.getInstance().modifyEmItem(emItem); if (success) { EnumServerCacheUtil.delEnumType(emItem.name); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010PLMENUM-00002", e); } } public boolean xml2DB(String userName) throws VCIError { return EnumService.getInstance().xml2DB(userName); } }