*/
private ProcessInstanceNode createProcessInstanceNode(
String uniqueProcessId, String processInstanceId,
ProcessNode process, Set<FlowNode> flowNodes) {
// create a process instance node
ProcessInstanceNode processInstanceNode = new ProcessInstanceNode(process,
processInstanceId, new Date());
// create relationships between process instance node and start node instances
// TODO: this is a pretty costly operation and should be evaluated
for (FlowNode flowNode : flowNodes) {
if (flowNode.getNodeType().equals(TStartEvent.class.toString())) {
FlowNodeInstance startNodeInstance = flowNodeInstanceRepositoryService
.findFlowNodeInstance(uniqueProcessId, flowNode.getUniqueFlowNodeId(), processInstanceId);
processInstanceNode.addRelationshipToStartEventInstance(startNodeInstance);
}
}
processInstanceNodeRepositoryService.save(processInstanceNode);
return processInstanceNode;