Package org.jbpm.pvm.internal.model

Examples of org.jbpm.pvm.internal.model.ExecutionImpl


    this.dbid = variable.getDbid();

    this.historyProcessInstance = historyProcessInstance;
    this.historyTask = historyTask;

    ExecutionImpl processInstance = variable.getProcessInstance();
    if (processInstance!=null) {
      this.processInstanceId = processInstance.getId();
    }
    // this.executionId = variable.getExecution().getId();

    this.variableName = variable.getKey();
    this.value = variable.getTextValue();
View Full Code Here


  public Object deepCopy(Object object) throws HibernateException {
    if (object==null) {
      return null;
    }
   
    ExecutionImpl original = (ExecutionImpl) object;

    ActivityImpl activity = new ActivityImpl();
    activity.setName(original.getActivity().getName());
   
    ExecutionImpl copy = new ExecutionImpl();
    copy.setActivity(activity);

    return copy;
  }
View Full Code Here

  }

  public boolean equals(Object arg0, Object arg1) throws HibernateException {
    if ( (arg0==null) || (arg1==null)) return false;
   
    ExecutionImpl execution0 = (ExecutionImpl) arg0;
    ExecutionImpl execution1 = (ExecutionImpl) arg1;
   
    String activityName0 = execution0.getActivity().getName();
    String activityName1 = execution1.getActivity().getName();
   
    return activityName0.equals(activityName1);
  }
View Full Code Here

    } else if (forkingTransitions.size()==1) {
      execution.take(forkingTransitions.get(0));
     
    // if there are more transitions
    } else {
      ExecutionImpl concurrentRoot = null;
      if (Execution.STATE_ACTIVE_ROOT.equals(execution.getState())) {
        concurrentRoot = execution;
        execution.setState(Execution.STATE_INACTIVE_CONCURRENT_ROOT);
        execution.setActivity(null);
      } else if (Execution.STATE_ACTIVE_CONCURRENT.equals(execution.getState())) {
        concurrentRoot = execution.getParent();
      }

      for (Transition transition: forkingTransitions) {
        // launch a concurrent path of execution
        String childExecutionName = transition.getName();
        ExecutionImpl concurrentExecution = concurrentRoot.createExecution(childExecutionName);
        concurrentExecution.setActivity(activity);
        concurrentExecution.setState(Execution.STATE_ACTIVE_CONCURRENT);
        concurrentExecution.take(transition);
       
        if (concurrentRoot.isEnded()) {
          break;
        }
      }
View Full Code Here

      session.lock(execution.getParent(), lockMode);

      execution.setState(Execution.STATE_INACTIVE_JOIN);
      execution.waitForSignal();

      ExecutionImpl concurrentRoot = execution.getParent();
      List<ExecutionImpl> joinedExecutions = getJoinedExecutions(concurrentRoot, activity);
     
      if (isComplete(joinedExecutions, activity)) {
        endJoinedExecutions(joinedExecutions);

        ExecutionImpl outgoingExecution = null;
        if (concurrentRoot.getExecutions().size()==0) {
          outgoingExecution = concurrentRoot;
          outgoingExecution.setState(Execution.STATE_ACTIVE_ROOT);
        } else {
          outgoingExecution = concurrentRoot.createExecution();
          outgoingExecution.setState(Execution.STATE_ACTIVE_CONCURRENT);
        }

        execution.setActivity(activity, outgoingExecution);
        Transition transition = activity.getDefaultOutgoingTransition();
        if (transition==null) {
          throw new JbpmException("join must have an outgoing transition");
        }
        outgoingExecution.take(transition);
      }
     
    } else {
      throw new JbpmException("invalid execution state");
    }
View Full Code Here

    List<Activity> startActivities = findStartActivities(activity);
    if (startActivities.size()==1) {
      execution.execute(startActivities.get(0));
    } else {
     
      ExecutionImpl concurrentRoot = null;
      if (Execution.STATE_ACTIVE_ROOT.equals(execution.getState())) {
        concurrentRoot = execution;
      } else if (Execution.STATE_ACTIVE_ROOT.equals(execution.getState())) {
        concurrentRoot = execution.getParent();
       
      } else {
        throw new JbpmException("illegal state");
      }
     
      for (Activity startActivity: startActivities) {
        ExecutionImpl concurrentExecution = concurrentRoot.createExecution();
        concurrentExecution.setState(Execution.STATE_ACTIVE_CONCURRENT);
        concurrentExecution.execute(startActivity);
      }
    }
  }
View Full Code Here

 
  protected String outcomeExpression;
  protected Map<Object, String> outcomeVariableMappings;

  public void execute(ActivityExecution execution) {
    ExecutionImpl executionImpl = (ExecutionImpl) execution;
   
    RepositorySession repositorySession = Environment.getFromCurrent(RepositorySession.class);
   
    ClientProcessDefinition processDefinition = null;
   
    if (subProcessId!=null) {
      processDefinition = repositorySession.findProcessDefinitionById(subProcessId);
    } else {
      processDefinition = repositorySession.findProcessDefinitionByKey(subProcessKey);
    }
   
    ExecutionImpl subProcessInstance = (ExecutionImpl) processDefinition.createProcessInstance(null, execution);
   
    for (String swimlaneName: swimlaneMappings.keySet()) {
      String subSwimlaneName = swimlaneMappings.get(swimlaneName);
      SwimlaneImpl subSwimlane = subProcessInstance.createSwimlane(subSwimlaneName);
      SwimlaneImpl swimlane = executionImpl.getSwimlane(swimlaneName);
      if (swimlane!=null) {
        subSwimlane.initialize(swimlane);
      }
    }
   
    for (SubProcessInParameterImpl inParameter: inParameters) {
      inParameter.produce(executionImpl, subProcessInstance);
    }

    executionImpl.historyActivityStart();
   
    subProcessInstance.start();
    execution.waitForSignal();
  }
View Full Code Here

  public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) throws Exception {
    signal((ExecutionImpl)execution, signalName, parameters);
  }

  public void signal(ExecutionImpl execution, String signalName, Map<String, ?> parameters) throws Exception {
    ExecutionImpl executionImpl = (ExecutionImpl) execution;

    ExecutionImpl subProcessInstance = executionImpl.getSubProcessInstance();

    String transitionName = null;

    ExecutionContext originalExecutionContext = null;
    ExecutionContext subProcessExecutionContext = null;
    Environment environment = Environment.getCurrent();
    if (environment!=null) {
      originalExecutionContext = (ExecutionContext) environment.removeContext(Context.CONTEXTNAME_EXECUTION);
      subProcessExecutionContext = new ExecutionContext((ExecutionImpl) subProcessInstance);
      environment.setContext(subProcessExecutionContext);
    }

    try {
      subProcessInstance.setSuperProcessExecution(null);
      executionImpl.setSubProcessInstance(null);
     

      for (SubProcessOutParameterImpl outParameter: outParameters) {
        outParameter.consume(executionImpl, subProcessInstance);
      }
     
      Activity activity = execution.getActivity();
      String subProcessActivityName = subProcessInstance.getActivityName();
     
      if (outcomeExpression!=null) {
        ScriptManager scriptManager = Environment.getFromCurrent(ScriptManager.class);
        Object value = scriptManager.evaluateExpression(outcomeExpression, null);
        // if the value is a String and matches the name of an outgoing transition
View Full Code Here

        execution.setActivity(parentActivity);
        execution.signal();
      }
       
    } else {
      ExecutionImpl executionToEnd = null;
      if (endProcessInstance) {
        executionToEnd = execution.getProcessInstance();
      } else {
        executionToEnd = execution;
      }
     
      if (state==null) {
        executionToEnd.end();
      } else {
        executionToEnd.end(state);
      }
    }
  }
View Full Code Here

 
  Map<String, SwimlaneDefinitionImpl> swimlaneDefinitions = new HashMap<String, SwimlaneDefinitionImpl>();
  Map<String, TaskDefinitionImpl> taskDefinitions = new HashMap<String, TaskDefinitionImpl>();

  protected ExecutionImpl newProcessInstance() {
    return new ExecutionImpl();
  }
View Full Code Here

TOP

Related Classes of org.jbpm.pvm.internal.model.ExecutionImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.