All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.yaoqiang.bpmn.engine.operation.SequenceFlowCreateScope Maven / Gradle / Ivy

package org.yaoqiang.bpmn.engine.operation;

import java.util.logging.Logger;

import org.yaoqiang.bpmn.engine.runtime.Execution;
import org.yaoqiang.bpmn.model.elements.activities.SubProcess;
import org.yaoqiang.bpmn.model.elements.core.common.FlowNode;

/**
 * SequenceFlowCreateScope
 * 
 * @author Shi Yaoqiang([email protected])
 */
public class SequenceFlowCreateScope implements ExecutionOperation {

	private static Logger log = Logger.getLogger(SequenceFlowCreateScope.class.getName());

	public void execute(Execution execution) {
		Execution propagatingExecution = null;

		FlowNode flowNode = execution.getFlowNode();
		if (flowNode instanceof SubProcess) {
			propagatingExecution = execution.createExecution();
			execution.setFlowNode(null);
			execution.setSequenceFlow(null);
			execution.setActive(false);
			log.fine("create scope: parent " + execution + " continues as execution " + propagatingExecution);
		} else {
			propagatingExecution = execution;
		}

		propagatingExecution.performOperation(FLOW_NODE_EXECUTE);

	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy