Class WorkflowFlowAnalysis
java.lang.Object
de.xima.fc.workflow.processor.logic.analysis.WorkflowFlowAnalysis
- All Implemented Interfaces:
IWorkflowFlowAnalysis, Serializable
Implementation of
IWorkflowFlowAnalysis that analyzes the execution of a workflow task or process.- Since:
- 7.0.0
- Author:
- XIMA MEDIA GmbH
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic WorkflowFlowAnalysisanalyzeProcess(WorkflowProcess process, Mandant client) Analyzes the execution of all tasks of the given workflow process.static <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding>
WorkflowFlowAnalysisanalyzeRootNodes(Iterable<IElementWithTask<TElement>> rootNodes, ITreeWithDataAccessor<TElement, UUID, Object> treeAccessor, Mandant client) Analyzes the execution of a single task.static <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding>
WorkflowFlowAnalysisanalyzeRootNodes(Iterable<IElementWithTask<TElement>> rootNodes, ITreeWithDataAccessor<TElement, UUID, Object> treeAccessor, Mandant client) Deprecated.static WorkflowFlowAnalysisanalyzeTask(WorkflowTask task, Mandant client) Analyzes the execution of a single task.static WorkflowFlowAnalysisempty()Convenience method for obtaining thetask analysis, then using it to obtain theend points.getPotentialPredecessorsOf(NodeKey targetKey, FlowGraphFilter.Backward filter) getPotentialSuccessorsOf(NodeKey sourceKey, FlowGraphFilter.Forward filter) getTaskAnalysis(UUID taskUuid) booleanisNodePotentiallyReachable(NodeKey sourceKey, NodeKey targetKey, FlowGraphFilter.Generic filter) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface IWorkflowFlowAnalysis
getPotentialPredecessorsOf, getPotentialSuccessorsOf, getTaskAnalysis, isNodePotentiallyReachable
-
Method Details
-
getEndPoints
Description copied from interface:IWorkflowFlowAnalysisConvenience method for obtaining thetask analysis, then using it to obtain theend points.- Specified by:
getEndPointsin interfaceIWorkflowFlowAnalysis- Parameters:
node- Node for which to find the end points.- Returns:
- The end points of the given node. Never null, but might be empty if a non-existing node was given.
-
getPotentialPredecessorsOf
- Specified by:
getPotentialPredecessorsOfin interfaceIWorkflowFlowAnalysis- Parameters:
targetKey- The key of the target node to check.filter- Filter applied when traversing the flow graph for finding paths from the target to preceding edges. SeeFlowGraphFiltersfor some common filters.- Returns:
- The keys of all nodes for which
isNodePotentiallyReachable(sourceUuid, nodeUuid, filter)returnstrue. - See Also:
-
getPotentialSuccessorsOf
- Specified by:
getPotentialSuccessorsOfin interfaceIWorkflowFlowAnalysis- Parameters:
sourceKey- The key of the target node to check.filter- Filter applied when traversing the flow graph for finding paths from the source to succeeding edges. SeeFlowGraphFiltersfor some common filters.- Returns:
- The keys of all nodes for which
isNodePotentiallyReachable(sourceUuid, nodeUuid, filter)returnstrue. - See Also:
-
getTaskAnalysis
- Specified by:
getTaskAnalysisin interfaceIWorkflowFlowAnalysis- Parameters:
taskUuid- UUID of a task that was analyzed.- Returns:
- The control flow analysis for the given task.
- See Also:
-
isNodePotentiallyReachable
public boolean isNodePotentiallyReachable(NodeKey sourceKey, NodeKey targetKey, FlowGraphFilter.Generic filter) - Specified by:
isNodePotentiallyReachablein interfaceIWorkflowFlowAnalysis- Parameters:
sourceKey- Key of the source node to check.targetKey- Key of the target node to check.filter- Filter applied when traversing the flow graph for finding paths from the source to the target. SeeFlowGraphFiltersfor some common filters.- Returns:
- Whether any code path includes a path where the source node was executed at the point in time the target node is about to be executed.
- See Also:
-
analyzeProcess
public static WorkflowFlowAnalysis analyzeProcess(WorkflowProcess process, Mandant client) throws WorkflowAnalysisException Analyzes the execution of all tasks of the given workflow process.- Parameters:
process- Process with tasks to analyze.client- The client scope where the analysis is performed.- Returns:
- The analyzed result of all given tasks.
- Throws:
WorkflowAnalysisException- When any exception occurred during the analysis, usually caused by misbehavingINodeHandlers.
-
analyzeRootNodes
public static <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding> WorkflowFlowAnalysis analyzeRootNodes(Iterable<IElementWithTask<TElement>> rootNodes, ITreeWithDataAccessor<TElement, UUID, throws WorkflowAnalysisExceptionObject> treeAccessor, Mandant client) Analyzes the execution of a single task.- Type Parameters:
TElement- Type of the workflow nodes.- Parameters:
rootNodes- Root nodes to analyze.treeAccessor- Accessor for retrieving the children and custom properties of the node.client- The client scope where the analysis is performed.- Returns:
- The result of analyzing the given task.
- Throws:
WorkflowAnalysisException- When any exception occurred during the analysis, usually caused by misbehavingINodeHandlers.
-
analyzeRootNodes
@Deprecated public static <TElement extends IWorkflowNodeTypeProviding & IActiveFlagProviding> WorkflowFlowAnalysis analyzeRootNodes(Iterable<IElementWithTask<TElement>> rootNodes, ITreeWithDataAccessor<TElement, UUID, throws WorkflowAnalysisExceptionObject> treeAccessor, Mandant client) Deprecated.Analyzes the execution of a single task.- Type Parameters:
TElement- Type of the workflow nodes.- Parameters:
rootNodes- Root nodes to analyze.treeAccessor- Accessor for retrieving the children and custom properties of the node.client- The client scope where the analysis is performed.- Returns:
- The result of analyzing the given task.
- Throws:
WorkflowAnalysisException- When any exception occurred during the analysis, usually caused by misbehavingINodeHandlers.
-
analyzeTask
public static WorkflowFlowAnalysis analyzeTask(WorkflowTask task, Mandant client) throws WorkflowAnalysisException Analyzes the execution of a single task.- Parameters:
task- A tasks to analyze.client- The client scope where the analysis is performed.- Returns:
- The result of analyzing the given task.
- Throws:
WorkflowAnalysisException- When any exception occurred during the analysis, usually caused by misbehavingINodeHandlers.
-
empty
- Returns:
- A new, empty workflow execution analysis. Behaves as if no nodes had been analyzed.
-
analyzeRootNodes(Iterable, ITreeWithDataAccessor, Mandant)instead.