Interface IExecutingLikeMultiSwitchNode<TData>
-
- Type Parameters:
TData
- Type of the node's properties model.
- All Superinterfaces:
ICustomParametersUpdateable
,IElementHandler<TData,WorkflowNode>
,IExecutionResultDescriptor
,INodeHandler<TData>
,IResourceBundleLocator
,IWorkflowElementTypeProviding
,IWorkflowNodeFlowAnalyzer<TData>
,IWorkflowNodeTypeProviding
- All Known Implementing Classes:
FcSwitchHandler
public interface IExecutingLikeMultiSwitchNode<TData> extends INodeHandler<TData>
Mixin with the implementation ofIWorkflowNodeFlowAnalyzer.createFlowGraph(ICreateFlowGraphParams)
for logic handlers that execute children like a switch. The switch node has one ore more children. The default switch case is at a certain index, the other children are normal switch cases with a condition. A switch case is executed when it matches the switch condition. Multiple switch cases can be executed when multiple cases match. When no case matches, the default case is executed.- Author:
- XIMA MEDIA GmbH
-
-
Field Summary
-
Fields inherited from interface de.xima.fc.interfaces.workflow.elements.IElementHandler
CURRENT_HANDLER_VERSION
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding>
IFlowGraphEndPointscreateFlowGraph(ICreateFlowGraphParams<TData,TElement> params)
This method is used to create the flow graph that represents the control flow of a workflow task.int
getDefaultCaseChildIndex()
-
Methods inherited from interface de.xima.fc.interfaces.workflow.ICustomParametersUpdateable
updateCustomParams
-
Methods inherited from interface de.xima.fc.interfaces.workflow.elements.IElementHandler
extractDescription, extractName, extractSearchTerms, getCascadingStyleSheet, getCascadingStyleSheet, getDataModelClass, getDisplayLabel, getElementSummaryModel, getElementSummaryXhtml, getFastJsonConverter, getFilterCriteriaForEntities, getHelpPageLocation, getJavaScript, getJavaScript, getPropertiesViewXhtml, getResourceBundle, getVersion, isAvailable, readEntityReferences, readPlaceholders, validateGlobal, validateLocal, writeEntityReferences, writePlaceholders
-
Methods inherited from interface de.xima.fc.interfaces.workflow.execution.IExecutionResultDescriptor
getAlwaysValueDescriptor, getErrorValueDescriptor, getFileValueDescriptor, getSoftErrorValueDescriptor, getSuccessValueDescriptor
-
Methods inherited from interface de.xima.fc.interfaces.workflow.nodes.INodeHandler
execute, getLocalizedTypeName, getNodePrototypes, getPropertiesBeanClass, getRelatedNodeTypes, isCreateProtocolEntryAfterExecution, isReplacePlaceholderBeforeExecution
-
Methods inherited from interface de.xima.fc.interfaces.workflow.IWorkflowElementTypeProviding
getType
-
-
-
-
Method Detail
-
createFlowGraph
default <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding> IFlowGraphEndPoints createFlowGraph(ICreateFlowGraphParams<TData,TElement> params) throws WorkflowAnalysisException
Description copied from interface:IWorkflowNodeFlowAnalyzer
This method is used to create the flow graph that represents the control flow of a workflow task. This is a directed graph. Each node in the control flow graph corresponds to aWorkflowNode
The graph has an edge fromnode1
tonode2
iff it is possible that node1 transfers control directly tonode2
; i.e. iff there exists at least one code path wherenode2
immediately succeeds node1.This method is not pure and must have side-effects. It is responsible for
- calling
createFlowGraph
(or one of its variants) on all of its children (if applicable); - calling
connect
(or one of its variants); and - returning the set of normal and throwing end points of the node.
This method must return the set of all nodes (including the children, grand-children etc. of this node) that represent the normal and throwing end points when the node is executed. These throwing end points are used for connecting this node to other siblings and parents. See the documentation of
IFlowGraphEndPoints.getNormalEndPoints()
andIFlowGraphEndPoints.getThrowingEndPoints()
for more details.- Specified by:
createFlowGraph
in interfaceIWorkflowNodeFlowAnalyzer<TData>
- Type Parameters:
TElement
- The type of the node elements on which the analysis is performed. This type may be different depending on whether the analysis is performed on the backend data modelWorkflowNode
or the frontend view model.- Parameters:
params
- The node to analyze and the current analysis context.- Returns:
- The set of all end points of the given node. Use
ICreateFlowGraphContext#endPoints
and its variants to create this return value. See the documentation ofIFlowGraphEndPoints.getNormalEndPoints()
andIFlowGraphEndPoints.getThrowingEndPoints()
for more details. - Throws:
WorkflowAnalysisException
- May be thrown when an unhandled exception occurred during the analysis. If this exception is thrown, the entire analysis is cancelled and the exception is propagated up. You should only throw this exception yourself if encountering an illegal state that would render the analysis invalid.
- calling
-
getDefaultCaseChildIndex
int getDefaultCaseChildIndex()
- Returns:
- Index of the child representing the default case. If negative, the number of children is added to the
index, so that
-1
is the last child,-2
the seconds to last child etc.
-
-