⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 processstateimpl.java

📁 一个java工作流引擎
💻 JAVA
字号:
package org.jbpm.model.definition.impl;

import org.jbpm.*;
import org.jbpm.delegation.*;
import org.jbpm.model.definition.*;
import org.jbpm.model.execution.impl.*;

public class ProcessStateImpl extends StateImpl implements ProcessState {

  private String subProcessName = null;
  private Definition subProcess = null;
  private transient DelegationImpl processInvocationDelegation = null; 

	public ProcessStateImpl() {}

  public ProcessStateImpl( String name ) {
    super( name );
  }
  
  public String getSubProcessName() { return this.subProcessName; }
  public void setSubProcessName(String subProcessName) { this.subProcessName = subProcessName; }
  
  public Definition getSubProcess() { return this.subProcess; }
  public void setSubProcess(Definition subProcess) { this.subProcess = subProcess; }

  public DelegationImpl getProcessInvocationDelegation() { return processInvocationDelegation;  }
  public void setProcessInvocationDelegation( DelegationImpl processInvocationDelegation ) { this.processInvocationDelegation = processInvocationDelegation;  }
  
  public void acceptToken(ExecutionContextImpl executionContext) throws ExecutionException {
    ProcessInvocationHandler processInvocationHandler = (ProcessInvocationHandler) processInvocationDelegation.instantiate();
    ProcessInstanceImpl subProcessInstance = null;
    try {
      subProcessInstance = (ProcessInstanceImpl)processInvocationHandler.startSubProcess( executionContext );
    } catch (RuntimeException e) {
      processInvocationDelegation.handleException(e);
    }
    if ( subProcessInstance != null ) {
      TokenImpl token = (TokenImpl) executionContext.getToken();
      token.setActorId( null );
      token.setState( this );
      token.setSubProcessInstance( subProcessInstance );
    } else {
      throw new ExecutionException( "process-invocation-handler '" + processInvocationDelegation.getClassName() + "' didn't return a sub-process-instance at handleSubProcessStart in process-state '" + name + "'");
    }
  }

	public void subProcessEnded(ExecutionContextImpl superExecutionContext, ExecutionContextImpl subExecutionContext) throws ExecutionException {
    ProcessInvocationHandler processInvocationHandler = (ProcessInvocationHandler) processInvocationDelegation.instantiate();
    String transitionName = processInvocationHandler.handleSubProcessEnd( superExecutionContext, subExecutionContext );
    TransitionImpl transition = getLeavingTransition( transitionName );
    transition.acceptToken( superExecutionContext );
  }

  public EventType getDefaultEventType() {
    return EventType.PROCESS_STATE_ENTER;
  }

  public void toXml(org.dom4j.Element element) {
    toXmlNameAndDescription(element);
    processInvocationDelegation.toXml( element.addElement( "delegation" ) );
    toXmlActions(element);
    toXmlTransitions(element);
  }

  public String getTagName() {
    return "process-state";
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -