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
package com.vci.server.workflow.server.delegate;
 
import java.util.List;
 
import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.VCIError;
import com.vci.corba.common.data.UserEntityInfo;
import com.vci.corba.workflow.data.FlowInstanceInfo;
import com.vci.server.base.delegate.BaseDelegate;
import com.vci.server.workflow.objects.FlowInstance;
import com.vci.server.workflow.server.instance.FlowInstanceService;
 
public class FlowInstanceDelegate extends BaseDelegate {
    FlowInstanceService service = null;
 
    public FlowInstanceDelegate(UserEntityInfo userEntityInfo) {
        super(userEntityInfo);
        service = new FlowInstanceService(this.getUserEntity());
    }
 
    public FlowInstanceDelegate() {
        service = new FlowInstanceService();
    }
 
    public String saveFlowInstance(FlowInstanceInfo info) throws VCIError {
        String flowId = info.id;
        if(flowId == null || flowId.trim().length() <= 0) {
            flowId = ObjectUtility.getNewObjectID36();
            info.id = flowId;
            try {
                service.saveFlowInstance(this.convertFlowInstanceInfoToFlowInstance(info));
            } catch (Exception ex) {
                throw new VCIError("410102", new String[] {});
            }
        }else{
            try {
                service.updateFlowInstance(this.convertFlowInstanceInfoToFlowInstance(info));
            } catch (Exception ex) {
                throw new VCIError("410102", new String[] {});
            }
        }
        return flowId;
    }
 
    public FlowInstanceInfo[] getFlowInstances(String applicant) throws VCIError {
        FlowInstanceInfo[] infos = new FlowInstanceInfo[0];
        try {
            List<FlowInstance> list = service.getFlowInstances(applicant);
            FlowInstance[] objects = list.toArray(new FlowInstance[] {});
            infos = this.convertFlowInstancesToFlowInstanceInfos(objects);
        } catch (Exception ex) {
            throw new VCIError("420101", new String[] {});
        }
        return infos;
    }
 
    public FlowInstanceInfo[] getFlowInstancesname(String name) throws VCIError {
        FlowInstanceInfo[] infos = new FlowInstanceInfo[0];
        try {
            List<FlowInstance> list = service.getFlowInstancesname(name);
            FlowInstance[] objects = list.toArray(new FlowInstance[] {});
            infos = this.convertFlowInstancesToFlowInstanceInfos(objects);
        } catch (Exception ex) {
            throw new VCIError("420101", new String[] {});
        }
        return infos;
    }
 
    private FlowInstance convertFlowInstanceInfoToFlowInstance(
            FlowInstanceInfo info) {
        FlowInstance object = new FlowInstance();
        object.setId(info.id);
        object.setExecutionid(info.executionid);
        object.setApplicant(info.applicant);
        object.setCreator(info.creator);
        object.setTemplatePuid(info.templatePuid);
        object.setTemplateName(info.templateName);
        object.setClsfOid(info.clsfOid);
        object.setTableName(info.tableName);
        object.setDesc(info.desc);
        object.setProcessType(info.processType);
        return object;
    }
 
    private FlowInstanceInfo[] convertFlowInstancesToFlowInstanceInfos(
            FlowInstance[] objects) {
        FlowInstanceInfo[] infos = new FlowInstanceInfo[objects.length];
        int i = 0;
        for (FlowInstance obj : objects) {
            infos[i++] = this.convertFlowInstanceToFlowInstanceInfo(obj);
        }
        return infos;
    }
 
    private FlowInstanceInfo convertFlowInstanceToFlowInstanceInfo(FlowInstance flowInstance) {
        FlowInstanceInfo flowInstanceInfo = new FlowInstanceInfo();
        flowInstanceInfo.id = flowInstance.getId() == null ? "" : flowInstance.getId();
        flowInstanceInfo.executionid = flowInstance.getExecutionid() == null ? "" : flowInstance.getExecutionid();
        flowInstanceInfo.applicant = flowInstance.getApplicant() == null ? "" : flowInstance.getApplicant();
        flowInstanceInfo.creator = flowInstance.getCreator() == null ? "" : flowInstance.getCreator();
        flowInstanceInfo.templatePuid = flowInstance.getTemplatePuid() == null ? "" : flowInstance.getTemplatePuid();
        flowInstanceInfo.templateName = flowInstance.getTemplateName() == null ? "" : flowInstance.getTemplateName();
        flowInstanceInfo.clsfOid = flowInstance.getClsfOid() == null ? "" : flowInstance.getClsfOid();
        flowInstanceInfo.tableName = flowInstance.getTableName() == null ? "" : flowInstance.getTableName();
        flowInstanceInfo.desc = flowInstance.getDesc() == null ? "" : flowInstance.getDesc();
        flowInstanceInfo.processType = flowInstance.getProcessType() == null ? "" : flowInstance.getProcessType();
        return flowInstanceInfo;
    }
}