package org.springblade.flow.engine.custom.handler;
import org.flowable.bpmn.model.Process;
import org.flowable.engine.impl.bpmn.parser.BpmnParse;
import org.flowable.engine.impl.bpmn.parser.handler.ProcessParseHandler;
import org.springframework.stereotype.Component;

/**
 * @Author:LoveMyOrange
 * @Description: 将Process元素中 自定义的属性 加载到PVM中 方便在流程运转中直接获取到
 * @Date:Created in 2021/8/28 14:30
 */
@Component
public class CustomProcessParseHandler extends ProcessParseHandler {



    @Override
    protected void executeParse(BpmnParse bpmnParse, Process process) {
        //1.委托父类进行元素进行解析工作
        super.executeParse(bpmnParse, process);
//        //2.父类解析完成之后, 因为Process元素解析完成之后 并不是 ActivityImpl对象 而是 ProcessDefinitionEntity 所以需要用此对象来 接收
//        ProcessDefinitionEntity currentProcessDefinition = bpmnParse.getCurrentProcessDefinition();
//        //3.自定义元素的解析
//        String attributeValue = process.getAttributeValue(exActivitiPrefixURL,extensionAttributeName);
//        //4.将解析到的扩展属性设置到 activity中 后续就可以直接通过 ProcessDefinitionEntity获取
//        if(StringUtils.isNotBlank(attributeValue)){
//            currentProcessDefinition.setProperty(extensionAttributeName,attributeValue);
//        }
    }

}
