44 lines
1.3 KiB
Java
44 lines
1.3 KiB
Java
|
|
package com.ruoyi.flowable.utils;
|
|||
|
|
|
|||
|
|
import org.flowable.bpmn.converter.BpmnXMLConverter;
|
|||
|
|
import org.flowable.bpmn.model.BpmnModel;
|
|||
|
|
import org.flowable.bpmn.model.FlowElement;
|
|||
|
|
import org.flowable.bpmn.model.Process;
|
|||
|
|
import org.flowable.bpmn.model.StartEvent;
|
|||
|
|
import org.flowable.common.engine.impl.util.io.StringStreamSource;
|
|||
|
|
|
|||
|
|
import java.util.Collection;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @author KonBAI
|
|||
|
|
* @createTime 2022/3/26 19:04
|
|||
|
|
*/
|
|||
|
|
public class ModelUtils {
|
|||
|
|
|
|||
|
|
private static final BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter();
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* xml转bpmnModel对象
|
|||
|
|
*
|
|||
|
|
* @param xml xml
|
|||
|
|
* @return bpmnModel对象
|
|||
|
|
*/
|
|||
|
|
public static BpmnModel getBpmnModel(String xml) {
|
|||
|
|
return bpmnXMLConverter.convertToBpmnModel(new StringStreamSource(xml), false, false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取开始节点
|
|||
|
|
*
|
|||
|
|
* @param model bpmnModel对象
|
|||
|
|
* @return 开始节点(未找到开始节点,返回null)
|
|||
|
|
*/
|
|||
|
|
public static StartEvent getStartEvent(BpmnModel model) {
|
|||
|
|
Process process = model.getMainProcess();
|
|||
|
|
Collection<FlowElement> elements = process.getFlowElements();
|
|||
|
|
return (StartEvent) elements.stream()
|
|||
|
|
.filter(flowElement -> flowElement instanceof StartEvent)
|
|||
|
|
.findFirst().orElse(null);
|
|||
|
|
}
|
|||
|
|
}
|