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