org.camunda.bpm.engine.impl.pvm.runtime.operation
Class PvmAtomicOperationCancelScope
java.lang.Object
org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCancelScope
- All Implemented Interfaces:
- CoreAtomicOperation<PvmExecutionImpl>, AtomicOperation, PvmAtomicOperation
- Direct Known Subclasses:
- PvmAtomicOperationActivityStartCancelScope, PvmAtomicOperationTransitionCancelScope
public abstract class PvmAtomicOperationCancelScope
- extends Object
- implements PvmAtomicOperation
Base class for implementing an atomic operation which performs cancel scope behavior.
Cancel scope behavior is different from "destroy scope" behavior. Destroy scope will delete the
scope execution for the current scope. cancel scope will not delete the scope execution itself
but will rather
- find the scope execution for the current scope,
- perform an interrupt: this will delete any executions / subprocess instances etc
which are child executions of the scope
- set the scope execution to the cancelling activity and move forward.
So as opposed to destroy scope we will not delete the current scope execution but cancel
anything that is happening in the current scope and then, still in the current scope, execute the
canceling activity.
Usage in BPMN:
In the context of BPMN this behavior is required for interrupting constructs like
- boundary events with cancelActivity="true"
- interrupting event subprocesses,
- terminate end events etc..
- Author:
- Daniel Meyer, Roman Smirnov
| Fields inherited from interface org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperation |
ACTIVITY_END, ACTIVITY_EXECUTE, ACTIVITY_NOTIFY_LISTENER_END, ACTIVITY_START, ACTIVITY_START_CANCEL_SCOPE, ACTIVITY_START_CONCURRENT, DELETE_CASCADE, DELETE_CASCADE_FIRE_ACTIVITY_END, FIRE_ACTIVITY_END, PROCESS_END, PROCESS_START, PROCESS_START_INITIAL, TRANSITION_CANCEL_SCOPE, TRANSITION_CREATE_SCOPE, TRANSITION_DESTROY_SCOPE, TRANSITION_NOTIFY_LISTENER_END, TRANSITION_NOTIFY_LISTENER_START, TRANSITION_NOTIFY_LISTENER_TAKE |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PvmAtomicOperationCancelScope
public PvmAtomicOperationCancelScope()
execute
public void execute(PvmExecutionImpl execution)
- Specified by:
execute in interface CoreAtomicOperation<PvmExecutionImpl>
scopeCancelled
protected abstract void scopeCancelled(PvmExecutionImpl execution)
getCancellingActivity
protected abstract ActivityImpl getCancellingActivity(PvmExecutionImpl execution)
isAsync
public boolean isAsync(PvmExecutionImpl execution)
- Specified by:
isAsync in interface CoreAtomicOperation<PvmExecutionImpl>
Copyright © 2014 camunda services GmbH. All rights reserved.