org.camunda.bpm.engine.impl.pvm.runtime
Class AtomicOperationCancelScope
java.lang.Object
org.camunda.bpm.engine.impl.pvm.runtime.AtomicOperationCancelScope
- All Implemented Interfaces:
- AtomicOperation
- Direct Known Subclasses:
- AtomicOperationActivityStartCancelScope, AtomicOperationTransitionCancelScope
public abstract class AtomicOperationCancelScope
- extends Object
- implements AtomicOperation
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.AtomicOperation |
ACTIVITY_END, ACTIVITY_EXECUTE, ACTIVITY_START, ACTIVITY_START_CANCEL_SCOPE, ACTIVITY_START_CONCURRENT, DELETE_CASCADE, DELETE_CASCADE_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 |
AtomicOperationCancelScope
public AtomicOperationCancelScope()
execute
public void execute(InterpretableExecution execution)
- Specified by:
execute in interface AtomicOperation
scopeCancelled
protected abstract void scopeCancelled(InterpretableExecution execution)
getCancellingActivity
protected abstract PvmActivity getCancellingActivity(InterpretableExecution execution)
isAsync
public boolean isAsync(InterpretableExecution execution)
- Specified by:
isAsync in interface AtomicOperation
Copyright © 2014 camunda services GmbH. All Rights Reserved.