package com.vci.server.bof.delegate; import com.vci.corba.common.VCIError; import com.vci.corba.omd.data.AttributeValue; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; import com.vci.server.bof.server.create.BatchCreateLO; import com.vci.server.bof.server.create.CreateLO; import com.vci.server.bof.server.delete.BatchDeleteLO; import com.vci.server.bof.server.delete.DeleteLO; import com.vci.server.bof.server.update.BatchUpdateLO; import com.vci.server.bof.server.update.UpdateLO; import com.vci.server.bof.service.LOFactoryService; public class LOFactoryServerDelegate extends LOFacotryBaseDelegate { private static LOFactoryServerDelegate instance = null; private LOFactoryServerDelegate() { } public static synchronized LOFactoryServerDelegate getInstance() { if (instance == null) { instance = new LOFactoryServerDelegate(); } return instance; } /** * 创建单个link对象 * @param lo * @return * @throws VCIError */ public LinkObject createLinkObject(LinkObject lo) throws VCIError { return (LinkObject) CreateLO.getInstance().doExecute(lo); } /** * 批量保持LO对象 * @param los * @return * @throws VCIError */ public LinkObject[] batchCreateLinkObject(LinkObject[] los) throws VCIError { return (LinkObject[]) BatchCreateLO.getInstance().doExecute(los); } /** * 更改单个LO对象 * @param lo * @return * @throws VCIError */ public boolean updateBuinessObject(LinkObject lo) throws VCIError { return (Boolean) UpdateLO.getInstance().doExecute(lo); } /** * 批量更改LO对象 * @param los * @return * @throws VCIError */ public boolean batchUpdateLinkObject(LinkObject[] los) throws VCIError { return (Boolean) BatchUpdateLO.getInstance().doExecute(los); } /** * 删除LO对象 * @param lo * @return * @throws VCIError */ public boolean deleteLinkObject(LinkObject lo) throws VCIError { return (Boolean) DeleteLO.getInstance().doExecute(lo); } /** * 批量删除LO对象 * @param los * @return * @throws VCIError */ public boolean batchDeleteLinkObject(LinkObject[] los) throws VCIError { return (Boolean) BatchDeleteLO.getInstance().doExecute(los); } public LinkObject[] getLinkObjectByBO(BusinessObject bo, String linkTypeName, boolean isFrom) throws VCIError { try { LOFactoryService services = LOFactoryService.getInstance(); LinkObject[] los = services.getLinkObjectByBO(bo, linkTypeName, isFrom); for (LinkObject lo : los) { dealBusinessObjectNullValue(lo); } return los; } catch (Exception e) { e.printStackTrace(); throw this.getLocalString("P0010LOL-00004", e); } catch (Throwable t) { t.printStackTrace(); throw this.getLocalString("P0010LOL-00004", t); } } public LinkObject readLinkObjectById(String oid, String linkTypeName) throws VCIError { try { LOFactoryService services = LOFactoryService.getInstance(); LinkObject lo = services.readLinkObjectById(oid, linkTypeName); if (lo == null) { lo = new LinkObject(); } dealBusinessObjectNullValue(lo); return lo; } catch (Exception e) { e.printStackTrace(); throw this.getLocalString("P0010LOL-00004", e); } catch (Throwable t) { t.printStackTrace(); throw this.getLocalString("P0010LOL-00004", t); } } private void dealBusinessObjectNullValue(LinkObject lo) { lo.oid = lo.oid == null ? "" : lo.oid; lo.creator = lo.creator == null ? "" : lo.creator; //lo.createTime = lo.createTime; lo.modifier = lo.modifier == null ? "" : lo.modifier; //lo.modifyTime = lo.modifyTime; lo.ltName = lo.ltName == null ? "" : lo.ltName; lo.fromOid = lo.fromOid == null ? "" : lo.fromOid; lo.fromRevOid = lo.fromRevOid == null ? "" : lo.fromRevOid; lo.fromNameOid = lo.fromNameOid == null ? "" : lo.fromNameOid; lo.fromBTName = lo.fromBTName == null ? "" : lo.fromBTName; lo.toOid = lo.toOid == null ? "" : lo.toOid; lo.toRevOid = lo.toRevOid == null ? "" : lo.toRevOid; lo.toNameOid = lo.toNameOid == null ? "" : lo.toNameOid; lo.toBTName = lo.toBTName == null ? "" : lo.toBTName; //lo.ts = lo.ts; lo.newAttrValList = new AttributeValue[0]; if (lo.hisAttrValList == null) { lo.hisAttrValList = new AttributeValue[0]; } for (int i = 0; i < lo.hisAttrValList.length; i++) { if (lo.hisAttrValList[i].attrVal == null) { lo.hisAttrValList[i].attrVal = ""; } } } }