Package org.jbpm.context.exe

Examples of org.jbpm.context.exe.ContextInstance


    Node node = token.getNode();
    return node.getLeavingTransitionsMap().keySet();
  }

  protected void storeTransitionNames(Collection transitionNames, Token token) {
    ContextInstance ci = (ContextInstance) token.getProcessInstance().getInstance(ContextInstance.class);
    if (ci==null) throw new JbpmException("an interleave start node requires the availability of a context");
    ci.setVariable(variableName,transitionNames, token);
  }
View Full Code Here


    if (ci==null) throw new JbpmException("an interleave start node requires the availability of a context");
    ci.setVariable(variableName,transitionNames, token);
  }

  public Collection retrieveTransitionNames(Token token) {
    ContextInstance ci = (ContextInstance) token.getProcessInstance().getInstance(ContextInstance.class);
    return (Collection) ci.getVariable(variableName, token);
  }
View Full Code Here

    ContextInstance ci = (ContextInstance) token.getProcessInstance().getInstance(ContextInstance.class);
    return (Collection) ci.getVariable(variableName, token);
  }

  public void removeTransitionNames(Token token) {
    ContextInstance ci = (ContextInstance) token.getProcessInstance().getInstance(ContextInstance.class);
    ci.setVariable(variableName,null, token);
  }
View Full Code Here

  }

  public void execute(ExecutionContext executionContext) {
    if (isConversationEnd) {
      // get the outer business process task instance
      ContextInstance contextInstance = executionContext.getContextInstance();
      String variableName = "taskInstance";
      TaskInstance taskInstance = (TaskInstance) contextInstance.getVariable(variableName);
     
      // complete the task
      if (outcome==null) {
        taskInstance.end();
      } else {
View Full Code Here

    inputMap.put( "node", executionContext.getNode() );
    inputMap.put( "task", executionContext.getTask() );
    inputMap.put( "taskInstance", executionContext.getTaskInstance() );
   
    // if no readable variableInstances are specified,
    ContextInstance contextInstance = executionContext.getContextInstance();
    if (! hasReadableVariable()) {
      // we copy all the variableInstances of the context into the interpreter
      Map variables = contextInstance.getVariables();
      if ( variables != null ) {
        Iterator iter = variables.entrySet().iterator();
        while( iter.hasNext() ) {
          Map.Entry entry = (Map.Entry) iter.next();
          String variableName = (String) entry.getKey();
          Object variableValue = entry.getValue();
          inputMap.put(variableName, variableValue);
        }
      }

    } else {
      // we only copy the specified variableInstances into the interpreterz
      Iterator iter = variableAccesses.iterator();
      while (iter.hasNext()) {
        VariableAccess variableAccess = (VariableAccess) iter.next();
        if (variableAccess.isReadable()) {
          String variableName = variableAccess.getVariableName();
          String mappedName = variableAccess.getMappedName();
          Object variableValue = contextInstance.getVariable(variableName);
          inputMap.put(mappedName, variableValue);
        }
      }
    }
   
View Full Code Here

    if ( (outputMap!=null)
         && (!outputMap.isEmpty())
         && (executionContext!=null)
       ) {
      Map variableNames = getVariableNames();
      ContextInstance contextInstance = executionContext.getContextInstance();
      Token token = executionContext.getToken();
     
      Iterator iter = outputMap.keySet().iterator();
      while (iter.hasNext()) {
        String mappedName = (String) iter.next();
        String variableName = (String) variableNames.get(mappedName);
        contextInstance.setVariable(variableName, outputMap.get(mappedName), token);
      }
    }
  }
View Full Code Here

   */
  public void initializeVariables(TaskInstance taskInstance) {
    if (taskControllerDelegation != null) {
      TaskControllerHandler taskControllerHandler = (TaskControllerHandler) taskControllerDelegation.instantiate();
      ProcessInstance processInstance = taskInstance.getTaskMgmtInstance().getProcessInstance();
      ContextInstance contextInstance = (processInstance!=null ? processInstance.getContextInstance() : null);
      Token token = taskInstance.getToken();
      taskControllerHandler.initializeTaskVariables(taskInstance, contextInstance, token);

    } else {
      Token token = taskInstance.getToken();
      ProcessInstance processInstance = token.getProcessInstance();
      ContextInstance contextInstance = processInstance.getContextInstance();

      if (variableAccesses!=null) {
        Iterator iter = variableAccesses.iterator();
        while (iter.hasNext()) {
          VariableAccess variableAccess = (VariableAccess) iter.next();
          String mappedName = variableAccess.getMappedName();
          if (variableAccess.isReadable()) {
            String variableName = variableAccess.getVariableName();
            Object value = contextInstance.getVariable(variableName, token);
            log.debug("creating task instance variable '"+mappedName+"' from process variable '"+variableName+"', value '"+value+"'");
            taskInstance.setVariableLocally(mappedName, value);
          } else {
            log.debug("creating task instance local variable '"+mappedName+"'. initializing with null value.");
            taskInstance.setVariableLocally(mappedName, null);
View Full Code Here

   */
  public void submitParameters(TaskInstance taskInstance) {
    if (taskControllerDelegation != null) {
      TaskControllerHandler taskControllerHandler = (TaskControllerHandler) taskControllerDelegation.instantiate();
      ProcessInstance processInstance = taskInstance.getTaskMgmtInstance().getProcessInstance();
      ContextInstance contextInstance = (processInstance!=null ? processInstance.getContextInstance() : null);
      Token token = taskInstance.getToken();
      taskControllerHandler.submitTaskVariables(taskInstance, contextInstance, token);

    } else {

      Token token = taskInstance.getToken();
      ProcessInstance processInstance = token.getProcessInstance();
      ContextInstance contextInstance = processInstance.getContextInstance();

      if (variableAccesses!=null) {
        String missingTaskVariables = null;
        Iterator iter = variableAccesses.iterator();
        while (iter.hasNext()) {
          VariableAccess variableAccess = (VariableAccess) iter.next();
          String mappedName = variableAccess.getMappedName();
          // first check if the required variableInstances are present
          if ( (variableAccess.isRequired())
               && (! taskInstance.hasVariableLocally(mappedName))
             ) {
            if (missingTaskVariables==null) {
              missingTaskVariables = mappedName;
            } else {
              missingTaskVariables += ", "+mappedName;
            }
          }
        }

        // if there are missing, required parameters, throw an IllegalArgumentException
        if (missingTaskVariables!=null) {
          throw new IllegalArgumentException("missing task variables: "+missingTaskVariables);
        }

        iter = variableAccesses.iterator();
        while (iter.hasNext()) {
          VariableAccess variableAccess = (VariableAccess) iter.next();
          String mappedName = variableAccess.getMappedName();
          String variableName = variableAccess.getVariableName();
          if (variableAccess.isWritable()) {
            Object value = taskInstance.getVariable(mappedName);
            if (value!=null) {
              log.debug("submitting task variable '"+mappedName+"' to process variable '"+variableName+"', value '"+value+"'");
              contextInstance.setVariable(variableName, value, token);
            }
          }
        }
      }
    }
View Full Code Here

    fireEvent(Event.EVENTTYPE_SUBPROCESS_CREATED, executionContext);

    // feed the readable variableInstances
    if ((variableAccesses != null) && (!variableAccesses.isEmpty())) {

      ContextInstance superContextInstance = executionContext.getContextInstance();
      ContextInstance subContextInstance = subProcessInstance.getContextInstance();
      subContextInstance.setTransientVariables(superContextInstance.getTransientVariables());

      // loop over all the variable accesses
      Iterator iter = variableAccesses.iterator();
      while (iter.hasNext()) {
        VariableAccess variableAccess = (VariableAccess) iter.next();
        // if this variable access is readable
        if (variableAccess.isReadable()) {
          // the variable is copied from the super process variable name
          // to the sub process mapped name
          String variableName = variableAccess.getVariableName();
          Object value = superContextInstance.getVariable(variableName, superProcessToken);
          String mappedName = variableAccess.getMappedName();
          log.debug("copying super process var '"+variableName+"' to sub process var '"+mappedName+"': "+value);
          if (value!=null) {
            subContextInstance.setVariable(mappedName, value);
          }
        }
      }
    }
View Full Code Here

    Token superProcessToken = subProcessInstance.getSuperProcessToken();

    // feed the readable variableInstances
    if ((variableAccesses != null) && (!variableAccesses.isEmpty())) {

      ContextInstance superContextInstance = executionContext.getContextInstance();
      ContextInstance subContextInstance = subProcessInstance.getContextInstance();

      // loop over all the variable accesses
      Iterator iter = variableAccesses.iterator();
      while (iter.hasNext()) {
        VariableAccess variableAccess = (VariableAccess) iter.next();
        // if this variable access is writable
        if (variableAccess.isWritable()) {
          // the variable is copied from the sub process mapped name
          // to the super process variable name
          String mappedName = variableAccess.getMappedName();
          Object value = subContextInstance.getVariable(mappedName);
          String variableName = variableAccess.getVariableName();
          log.debug("copying sub process var '"+mappedName+"' to super process var '"+variableName+"': "+value);
          if (value!=null) {
            superContextInstance.setVariable(variableName, value, superProcessToken);
          }
View Full Code Here

TOP

Related Classes of org.jbpm.context.exe.ContextInstance

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.