package com.vci.server.bof.server; import javax.xml.rpc.holders.LongHolder; import com.vci.corba.framework.data.UserInfo; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; import com.vci.corba.omd.lcm.TransitionVO; import com.vci.corba.common.VCIError; /** * 针对bo提供重载方法 * 根据传参的不同,定义不同的重载execute方法 * 如添加新的参数,请到ServiceParams类中添加 * @author lmh * */ public abstract class ServiceFacadeExecuteHelper extends ServiceFacade{ //lo------------------------------------- /** * 执行(创建、修改链接类型) * @throws VCIError */ public Object doExecute(LinkObject lo) throws VCIError { params = new ServiceParams(); params.setLo(lo); return execute(); } /** * 执行(批量创建、修改链接类型) * @throws VCIError */ public Object doExecute(LinkObject[] los) throws VCIError { params = new ServiceParams(); params.setLos(los); return execute(); } private Object execute() throws VCIError { Object obj = null; try { this.doBefore(); } catch (VCIError e) { throw e; } catch (Throwable e) { e.printStackTrace(); throw new VCIError(e.getMessage(),new String[]{"前置事件异常"}); } try { obj = this.doAction(); } catch (VCIError e) { throw e; } catch (Throwable e) { e.printStackTrace(); throw new VCIError(e.getMessage(),new String[]{"服务端异常"}); } try { this.doAfter(); } catch (VCIError e) { throw e; } catch (Throwable e) { e.printStackTrace(); throw new VCIError(e.getMessage(),new String[]{"后置事件异常"}); } return obj; } //bo------------------------------------- /** * 执行(更新bo) * @throws VCIError */ public Object doExecute(BusinessObject bo) throws VCIError { params = new ServiceParams(); params.setBo(bo); return execute(); } /** * 执行(删除bo) * @throws VCIError */ public Object doExecute(BusinessObject bo, int type) throws VCIError { params = new ServiceParams(); params.setBo(bo); params.setType(type); return execute(); } /** * 执行(批量删除bo) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, int type) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setType(type); return execute(); } /** * 执行(批量更新bo) * @throws VCIError */ public Object doExecute(BusinessObject[] bos) throws VCIError { params = new ServiceParams(); params.setBos(bos); return execute(); } /** * 执行(新增BO对象) * @throws VCIError */ public Object doExecute(BusinessObject bo, boolean isRevision, boolean isNewVersion) throws VCIError { params = new ServiceParams(); params.setBo(bo); params.setRevision(isRevision); params.setNewVersion(isNewVersion); return execute(); } /** * 执行(新增链接和链接相关联的bo对象) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, LinkObject lo) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setLo(lo); return execute(); } /** * 执行(新增链接和链接相关联的bo对象) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, LinkObject lo, LongHolder ts) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setLo(lo); params.setTs(ts); return execute(); } /** * 执行(批量保存对象以及链接) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, LinkObject[] los) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setLos(los); return execute(); } /** * 执行(批量保存对象以及链接) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, LinkObject[] los, LongHolder ts) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setLos(los); params.setTs(ts); return execute(); } /** * 执行(批量新增BO对象) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, boolean isRevision, boolean isNewVersion) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setRevision(isRevision); params.setNewVersion(isNewVersion); return execute(); } /** * 执行(批量升版) * @throws VCIError */ public Object doExecute(String[] oids, String btmName) throws VCIError { params = new ServiceParams(); params.setOids(oids); params.setBtmName(btmName); return execute(); } /** * 执行(跃迁bo) * @throws VCIError */ public Object doExecute(BusinessObject bo, TransitionVO vo, String releaseStatus) throws VCIError { params = new ServiceParams(); params.setBo(bo); params.setVo(vo); params.setReleaseStatus(releaseStatus); return execute(); } /** * 执行(批量跃迁bo) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, TransitionVO[] vos, String[] releaseStatus) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setVos(vos); params.setReleaseStatuss(releaseStatus); return execute(); } /** * 执行(变更拥有者bo) * @throws VCIError */ public Object doExecute(BusinessObject bo, UserInfo userInfo) throws VCIError { params = new ServiceParams(); params.setBo(bo); params.setUserInfo(userInfo); return execute(); } /** * 执行(批量变更拥有者bo) * @throws VCIError */ public Object doExecute(BusinessObject[] bos, UserInfo[] userList) throws VCIError { params = new ServiceParams(); params.setBos(bos); params.setUserList(userList); return execute(); } /** * 批量增删改LOS.BOS * @param createBOs * @param createLOs * @param updateBOs * @param updateLOs * @param deleteBOs * @param deleteLOs * @return * @throws VCIError */ public Object doExecute(BusinessObject[] createBOs, LinkObject[] createLOs, BusinessObject[] updateBOs, LinkObject[] updateLOs, BusinessObject[] deleteBOs, LinkObject[] deleteLOs) throws VCIError{ params = new ServiceParams(); params.setCreateBos(createBOs); params.setDeleteBos(deleteBOs); params.setUpdateBos(updateBOs); params.setCreateLos(createLOs); params.setUpdateLos(updateLOs); params.setDeleteLos(deleteLOs); return execute(); } /** * 批量保存LOS.BOS * @param createBOs * @param createLOs * @param deleteBOs * @param deleteLOs * @return * @throws VCIError */ public Object doExecute(BusinessObject[] createBOs, LinkObject[] createLOs, BusinessObject[] deleteBOs, LinkObject[] deleteLOs) throws VCIError{ params = new ServiceParams(); params.setCreateBos(createBOs); params.setDeleteBos(deleteBOs); params.setCreateLos(createLOs); params.setDeleteLos(deleteLOs); return execute(); } }