ludc
2025-01-16 986aa62ed00bee39363bab41b4eeb8259d446efd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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 = "";
            }
        }
    }
}