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 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 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; } }