Flowable源码地址:https://github.com/flowable/flowable-engine
Flowable-6.7.2 源码注释地址:https://github.com/solojin/flowable-6.7.2-annotated
扩展类任务解析处理器,包路径:org.flowable.engine.impl.bpmn.parser.handler
BusinessRuleParseHandler 业务规则解析处理器
/**
* 业务规则解析处理器
*
* @author Joram Barrez
*/
public class BusinessRuleParseHandler extends AbstractActivityBpmnParseHandler<BusinessRuleTask> {
@Override
public Class<? extends BaseElement> getHandledType() {
return BusinessRuleTask.class;
}
// 策略模式动态设置行为,工厂模式创建业务规则活动行为
@Override
protected void executeParse(BpmnParse bpmnParse, BusinessRuleTask businessRuleTask) {
businessRuleTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createBusinessRuleTaskActivityBehavior(businessRuleTask));
}
}
HttpServiceTaskParseHandler HTTP服务任务解析处理器
/**
* HTTP服务任务解析处理器
*
* @author Tijs Rademakers
*/
public class HttpServiceTaskParseHandler extends AbstractActivityBpmnParseHandler<ServiceTask> {
@Override
public Class<? extends BaseElement> getHandledType() {
return HttpServiceTask.class;
}
// 策略模式动态设置行为,工厂模式创建HTTP活动行为
@Override
protected void executeParse(BpmnParse bpmnParse, ServiceTask serviceTask) {
serviceTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createHttpActivityBehavior(serviceTask));
}
}
ManualTaskParseHandler 手动任务解析处理器
/**
* 手动任务解析处理器
*
* @author Joram Barrez
*/
public class ManualTaskParseHandler extends AbstractActivityBpmnParseHandler<ManualTask> {
@Override
public Class<? extends BaseElement> getHandledType() {
return ManualTask.class;
}
@Override
protected void executeParse(BpmnParse bpmnParse, ManualTask manualTask) {
manualTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createManualTaskActivityBehavior(manualTask));
}
}
ScriptTaskParseHandler 脚本任务解析处理器
/**
* 脚本任务解析处理器
* @author Joram Barrez
*/
public class ScriptTaskParseHandler extends AbstractActivityBpmnParseHandler<ScriptTask> {
private static final Logger LOGGER = LoggerFactory.getLogger(ScriptTaskParseHandler.class);
@Override
public Class<? extends BaseElement> getHandledType() {
return ScriptTask.class;
}
@Override
protected void executeParse(BpmnParse bpmnParse, ScriptTask scriptTask) {
if (StringUtils.isEmpty(scriptTask.getScript())) {
LOGGER.warn("No script provided for scriptTask {}", scriptTask.getId());
}
scriptTask.setBehavior(bpmnParse.getActivityBehaviorFactory().createScriptTaskActivityBehavior(scriptTask));
}
}