package com.vci.server.omd.statepool.delegate; import com.vci.common.exception.VciExceptionTool; import com.vci.corba.common.VCIError; import com.vci.corba.omd.stm.StatePool; import com.vci.server.base.exception.ExceptionLocalHandler; import com.vci.server.cache.OMCacheProvider; import com.vci.server.omd.statepool.cache.StatePoolServerCacheUtil; import com.vci.server.omd.statepool.service.StatePoolService; public class LCStateServerDelegate implements IStatePoolServerDelegate { private static IStatePoolServerDelegate instance; public static IStatePoolServerDelegate getInstance() { if (instance == null) { instance = new LCStateServerDelegate(); } return instance; } protected VCIError getLocalVciError(String key, Throwable e) { VCIError error = new VCIError(key, new String[]{VciExceptionTool.getExceptionStr(e), VciExceptionTool.getExceptionDetail(e)}); VCIError rsError = ExceptionLocalHandler.getInstance().getLocalString(error, "PLMSTATE"); return rsError; } @Override public StatePool[] getStatePools() throws VCIError { // TODO Auto-generated method stub return OMCacheProvider.getLifeStates(); } @Override public String[] getImagePaths() throws Throwable { // TODO Auto-generated method stub return StatePoolServerCacheUtil.getImagePaths(); } @Override public StatePool getStatePool(String name) throws VCIError { // TODO Auto-generated method stub return OMCacheProvider.getLifeState(name); } public boolean addStatePool(StatePool state) throws VCIError { try{ boolean success = StatePoolService.getInstance().addStatePool(state); if (success) { StatePoolServerCacheUtil.setLifeState(state); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010STATE-00001", e); } } public boolean modifyStatePool(StatePool state) throws VCIError { try{ boolean success = StatePoolService.getInstance().modifyStatePool(state); if (success) { StatePoolServerCacheUtil.setLifeState(state); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010STATE-00002", e); } } public boolean deleteStatePool(StatePool state) throws VCIError { try{ boolean success = StatePoolService.getInstance().deleteStatePool(state); if (success) { StatePoolServerCacheUtil.delLifeState(state.name); } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010STATE-00003", e); } } public boolean deleteStatePools(StatePool[] sps) throws VCIError { try{ boolean success = StatePoolService.getInstance().deleteStatePools(sps); if (success) { for (StatePool state : sps) { StatePoolServerCacheUtil.delLifeState(state.name); } } return success; }catch(Throwable e){ e.printStackTrace(); throw getLocalVciError("P0010STATE-00003", e); } } public boolean xml2DB(String userName) throws VCIError { return StatePoolService.getInstance().xml2DB(userName); } }