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
package com.vci.server.bof.delegate;
 
import com.vci.server.base.persistence.dao.HibernateSessionFactory;
import com.vci.server.cache.OMCacheProvider;
import com.vci.corba.common.VCIError;
import com.vci.corba.omd.atm.AttribItem;
import com.vci.corba.omd.data.AttributeValue;
import com.vci.corba.omd.data.LinkObject;
import com.vci.omd.utils.ObjectTool;
import com.vci.common.objects.UserEntity;
import com.vci.common.utility.ObjectUtility;
 
public class LOFacotryServerLODelegate extends LOFacotryBaseDelegate {
 
    private static LOFacotryServerLODelegate instance = null;
    public static UserEntity userEntity = null;
    public LOFacotryServerLODelegate() {
        userEntity = new UserEntity();
    }
    
    public static synchronized LOFacotryServerLODelegate getInstance() {
        if (instance == null) {
            instance = new LOFacotryServerLODelegate();
        }
        
        return instance;
    }
 
    public LinkObject initLinkObject(String loName) throws VCIError {
        LinkObject lo = new LinkObject();
        lo.oid = ObjectUtility.getNewObjectID36();
        lo.creator = HibernateSessionFactory.getVciSessionInfo().userName;
        lo.createTime = System.currentTimeMillis();
        lo.modifier = HibernateSessionFactory.getVciSessionInfo().userName;
        lo.modifyTime = System.currentTimeMillis();
        lo.fromOid = "";
        lo.fromRevOid = "";
        lo.fromNameOid = "";
        lo.fromBTName = "";
        lo.toOid = "";
        lo.toRevOid = "";
        lo.toNameOid = "";
        lo.toBTName = "";
        lo.ltName = loName;
        lo.newAttrValList = new AttributeValue[0];
        lo.hisAttrValList = new AttributeValue[0];
        lo.ts = System.currentTimeMillis();
        //属性初始值设置
        initLinkTypeAttributeValue(lo, loName);
        return lo;
    }
    
    private void initLinkTypeAttributeValue(LinkObject lo, String loName) throws VCIError {
        try {
            //LinkType lt = ServerServiceProvider.getOMDService().getLinkTypeService().getLinkType(loName);
            //LinkType lt = OMProvider.getLinkType(loName);
            //AttribItem[] attrs = ServerServiceProvider.getOMDService().getAttributeService().getAttribItemsByNames(lt.attributes);
            AttribItem[] attrs = OMCacheProvider.getAttribItemsByLinkType(loName);
            
            for (AttribItem item : attrs) {
                ObjectTool.setLOAttributeValue(lo, item.name, item.defValue);
            }
        } catch (Throwable e) {
            e.printStackTrace();
            throw this.getLocalString("P0010SOF-10008", e);
        }
    }
}