Flowable源码地址:https://github.com/flowable/flowable-engine
Flowable-6.7.2 源码注释地址:https://github.com/solojin/flowable-6.7.2-annotated
历史解析器,包路径:org.activiti.engine.impl.history.parse
ProcessHistoryParseHandler 流程历史解析器
package org.activiti.engine.impl.history.parse;
import org.activiti.engine.impl.bpmn.parser.BpmnParse;
import org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler;
import org.activiti.engine.impl.history.handler.ProcessInstanceEndHandler;
import org.flowable.bpmn.model.BaseElement;
import org.flowable.bpmn.model.Process;
/**
* 流程历史解析器
* 负责解析Process实例对象并为其添加事件类型为end的监听器
*
* @author Joram Barrez
*/
public class ProcessHistoryParseHandler extends AbstractBpmnParseHandler<Process> {
protected static final ProcessInstanceEndHandler PROCESS_INSTANCE_END_HANDLER = new ProcessInstanceEndHandler();
@Override
protected Class<? extends BaseElement> getHandledType() {
return Process.class;
}
// 执行解析,为其添加类型为end的监听器
@Override
protected void executeParse(BpmnParse bpmnParse, Process element) {
bpmnParse.getCurrentProcessDefinition().addExecutionListener(org.activiti.engine.impl.pvm.PvmEvent.EVENTNAME_END, PROCESS_INSTANCE_END_HANDLER);
}
}
StartEventHistoryParseHandler 开始事件历史解析器
package org.activiti.engine.impl.history.parse;
import org.activiti.engine.impl.bpmn.parser.BpmnParse;
import org.activiti.engine.impl.bpmn.parser.handler.AbstractBpmnParseHandler;
import org.activiti.engine.impl.history.handler.StartEventEndHandler;
import org.flowable.bpmn.model.BaseElement;
import org.flowable.bpmn.model.StartEvent;
/**
* 开始事件历史解析器
* 负责解析开始事件实例对象并为其添加事件类型为end的监听器
*
* @author Joram Barrez
*/
public class StartEventHistoryParseHandler