protected CmmnActivityBehavior getActivityBehavior() { return new StageActivityBehavior(); }
public void onManualCompletion(CmmnActivityExecution execution) { ensureTransitionAllowed(execution, ACTIVE, COMPLETED, "complete"); canComplete(execution, true, true); completing(execution); }
public void handleChildTermination(CmmnActivityExecution execution, CmmnActivityExecution child) { fireForceUpdate(execution); if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } else if (execution.isTerminating() && isAbleToTerminate(execution)) { String id = execution.getId(); CaseExecutionState currentState = execution.getCurrentState(); if (TERMINATING_ON_TERMINATION.equals(currentState)) { execution.performTerminate(); } else if (TERMINATING_ON_EXIT.equals(currentState)) { execution.performExit(); } else if (TERMINATING_ON_PARENT_TERMINATION.equals(currentState)) { throw LOG.illegalStateTransitionException("parentTerminate", id, getTypeName()); } else { throw LOG.terminateCaseException(id, currentState); } } }
protected boolean canComplete(CmmnActivityExecution execution, boolean throwException) { boolean autoComplete = evaluateAutoComplete(execution); return canComplete(execution, throwException, autoComplete); }
public void handleChildDisabled(CmmnActivityExecution execution, CmmnActivityExecution child) { fireForceUpdate(execution); if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } }
public void resumed(CmmnActivityExecution execution) { if (execution.isAvailable()) { // trigger created() to check whether an exit- or // entryCriteria has been satisfied in the meantime. created(execution); } else if (execution.isActive()) { // if the given case execution is active after resuming, // then propagate it to the children. resumeChildren(execution); } }
protected boolean canComplete(CmmnActivityExecution execution) { return canComplete(execution, false); }
protected boolean evaluateAutoComplete(CmmnActivityExecution execution) { CmmnActivity activity = getActivity(execution); Object autoCompleteProperty = activity.getProperty(PROPERTY_AUTO_COMPLETE); if (autoCompleteProperty != null) { String message = "Property autoComplete expression returns non-Boolean: "+autoCompleteProperty+" ("+autoCompleteProperty.getClass().getName()+")"; ensureInstanceOf(message, "autoComplete", autoCompleteProperty, Boolean.class); return (Boolean) autoCompleteProperty; } return false; }
public void onReactivation(CmmnActivityExecution execution) { String id = execution.getId(); if (execution.isActive()) { throw LOG.alreadyActiveException("reactivate", id); } if (execution.isCaseInstanceExecution()) { if (execution.isClosed()) { throw LOG.alreadyClosedCaseException("reactivate", id); } } else { ensureTransitionAllowed(execution, FAILED, ACTIVE, "reactivate"); } }
protected void performStart(CmmnActivityExecution execution) { CmmnActivity activity = execution.getActivity(); List<CmmnActivity> childActivities = activity.getActivities(); if (childActivities != null && !childActivities.isEmpty()) { List<CmmnExecution> children = execution.createChildExecutions(childActivities); execution.createSentryParts(); execution.triggerChildExecutionsLifecycle(children); if (execution.isActive()) { execution.fireIfOnlySentryParts(); // if "autoComplete == true" and there are no // required nor active child activities, // then the stage will be completed. if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } } } else { execution.complete(); } }
public void handleChildDisabled(CmmnActivityExecution execution, CmmnActivityExecution child) { fireForceUpdate(execution); if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } }
public void resumed(CmmnActivityExecution execution) { if (execution.isAvailable()) { // trigger created() to check whether an exit- or // entryCriteria has been satisfied in the meantime. created(execution); } else if (execution.isActive()) { // if the given case execution is active after resuming, // then propagate it to the children. resumeChildren(execution); } }
protected boolean canComplete(CmmnActivityExecution execution, boolean throwException) { boolean autoComplete = evaluateAutoComplete(execution); return canComplete(execution, throwException, autoComplete); }
protected boolean canComplete(CmmnActivityExecution execution) { return canComplete(execution, false); }
protected boolean evaluateAutoComplete(CmmnActivityExecution execution) { CmmnActivity activity = getActivity(execution); Object autoCompleteProperty = activity.getProperty(PROPERTY_AUTO_COMPLETE); if (autoCompleteProperty != null) { String message = "Property autoComplete expression returns non-Boolean: "+autoCompleteProperty+" ("+autoCompleteProperty.getClass().getName()+")"; ensureInstanceOf(message, "autoComplete", autoCompleteProperty, Boolean.class); return (Boolean) autoCompleteProperty; } return false; }
public void onReactivation(CmmnActivityExecution execution) { String id = execution.getId(); if (execution.isActive()) { throw LOG.alreadyActiveException("reactivate", id); } if (execution.isCaseInstanceExecution()) { if (execution.isClosed()) { throw LOG.alreadyClosedCaseException("reactivate", id); } } else { ensureTransitionAllowed(execution, FAILED, ACTIVE, "reactivate"); } }
protected void performStart(CmmnActivityExecution execution) { CmmnActivity activity = execution.getActivity(); List<CmmnActivity> childActivities = activity.getActivities(); if (childActivities != null && !childActivities.isEmpty()) { List<CmmnExecution> children = execution.createChildExecutions(childActivities); execution.createSentryParts(); execution.triggerChildExecutionsLifecycle(children); if (execution.isActive()) { execution.fireIfOnlySentryParts(); // if "autoComplete == true" and there are no // required nor active child activities, // then the stage will be completed. if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } } } else { execution.complete(); } }
protected CmmnActivityBehavior getActivityBehavior() { return new StageActivityBehavior(); }
public void onManualCompletion(CmmnActivityExecution execution) { ensureTransitionAllowed(execution, ACTIVE, COMPLETED, "complete"); canComplete(execution, true, true); completing(execution); }
public void handleChildTermination(CmmnActivityExecution execution, CmmnActivityExecution child) { fireForceUpdate(execution); if (execution.isActive()) { checkAndCompleteCaseExecution(execution); } else if (execution.isTerminating() && isAbleToTerminate(execution)) { String id = execution.getId(); CaseExecutionState currentState = execution.getCurrentState(); if (TERMINATING_ON_TERMINATION.equals(currentState)) { execution.performTerminate(); } else if (TERMINATING_ON_EXIT.equals(currentState)) { execution.performExit(); } else if (TERMINATING_ON_PARENT_TERMINATION.equals(currentState)) { throw LOG.illegalStateTransitionException("parentTerminate", id, getTypeName()); } else { throw LOG.terminateCaseException(id, currentState); } } }