| Interface | Description | 
|---|---|
| Process.ProcessCallback | 
| Class | Description | 
|---|---|
| DecisionGateway | 
 Chooses a next element in a  
Process by evaluating a series of criteria against
 the Process.state and choosing the element associated with
 the criteria that matched, or a defaultElement if none of the criteria match. | 
| Process | 
 A instance of Process represents a stateful process executing a series of Tasks, 
  which may be:
  
   user interactions
   calls to DataSources (hence: any database or web service)
   arbitrary code
   other Processes
  
 A Process is stateful in the sense that it maintains  
state
  across the different tasks that are executed. | 
| ProcessElement | 
 A ProcessElement is an abstract superclass for elements involved in a  
Process,
 such as a Task or XORGateway. | 
| ProcessSequence | 
 An Array of  
ProcessElements involved in a Process. | 
| ScriptTask | 
 Task that executes arbitrary code, either synchronous or asynchronous. 
 | 
| ServiceTask | 
 A ServiceTask is an element of a  
Process which calls a DataSource operation, 
 optionally using part of the process state as inputs or
 storing outputs in the process state. | 
| StateTask | 
 StateTask can either copy fields of  
Process.state to other
 fields, or apply hardcoded values to Process.state via value. | 
| Task | 
 A Task is an abstract superclass for  
Process and for all Task types that can
 be involved in a Process, such as a ServiceTask. | 
| UserTask | 
 A task that involves showing a user interface to the end user allowing the user to view and input data and press a
 button (or do some other UI gesture) to complete the task. 
 | 
| XORGateway | 
 Chooses one or another next process element based on AdvancedCriteria applied to  
Process.state. |