Package de.xima.fc.mdl.workflow
Class FlowGraphEndPoint
- java.lang.Object
-
- de.xima.fc.mdl.workflow.FlowGraphEndPoint
-
- All Implemented Interfaces:
INodeKeyProviding
,Serializable
- Direct Known Subclasses:
FlowGraphEndPoint.ControlTransfer
,FlowGraphEndPoint.Normal
,FlowGraphEndPoint.Returning
,FlowGraphEndPoint.Throwing
public abstract class FlowGraphEndPoint extends Object implements INodeKeyProviding, Serializable
Base class for flow graph end point, used when analyzing the control flow of a workflow processing chain. Conceptually, an end point with respect to some node are the child nodes where execution may terminate when that node is executed. A distinction is made between the different types of how a node can complete, either normally or abruptly. See the subclassesFlowGraphEndPoint.Normal
,FlowGraphEndPoint.Throwing
,FlowGraphEndPoint.ControlTransfer
,Advice.Return
for more details on the different end point types.End points are used during the
creation of the flow graph
of a node. The end points allow for some conclusions to be drawn regarding the execution of a workflow. For example:- When the
root node
of aprocessing chain
has anynormal
end points, it is missing a return statement somewhere (equivalent to the Java error"This method must return a result of type X"
). - When the root
root node
of aprocessing chain
has nothrowing
end points, all exception are caught and handled properly and the processing chain can never fail (exception in exceptional circumstances, such as when the workflow engine contains a bug).
- Since:
- 8.2.0
- Author:
- XIMA MEDIA GmbH
- See Also:
FlowGraphEndPoint.Normal
,FlowGraphEndPoint.Throwing
,FlowGraphEndPoint.Returning
,FlowGraphEndPoint.ControlTransfer
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlowGraphEndPoint.ControlTransfer
A special type ofFlowGraphEndPoint
, used when analyzing the control flow of a workflow processing chain.static class
FlowGraphEndPoint.Normal
A special type ofFlowGraphEndPoint
, used when analyzing the control flow of a workflow processing chain.static class
FlowGraphEndPoint.Returning
A special type ofFlowGraphEndPoint
, used when analyzing the control flow of a workflow processing chain.static class
FlowGraphEndPoint.Throwing
A special type ofFlowGraphEndPoint
, used when analyzing the control flow of a workflow processing chain.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static FlowGraphEndPoint.ControlTransfer
controlTransfer(NodeKey nodeKey, NodeKey target, String controlTransferType)
Creates a new control transfer end point for the given node key and the given target and control transfer type.abstract boolean
equals(Object obj)
NodeKey
getNodeKey()
abstract int
hashCode()
static FlowGraphEndPoint.Normal
normal(NodeKey nodeKey)
Creates a new normal end point for the given node key and with no data.static FlowGraphEndPoint.Returning
returning(NodeKey nodeKey)
Creates a new returning end point for the given node key and with no data.static FlowGraphEndPoint.Throwing
throwing(NodeKey nodeKey)
Creates a new throwing end point for the given node key and with no data.
-
-
-
Field Detail
-
nodeKey
protected final NodeKey nodeKey
-
-
Method Detail
-
getNodeKey
public final NodeKey getNodeKey()
- Specified by:
getNodeKey
in interfaceINodeKeyProviding
- Returns:
- Key of the workflow node representing this end point.
-
controlTransfer
public static FlowGraphEndPoint.ControlTransfer controlTransfer(NodeKey nodeKey, NodeKey target, String controlTransferType)
Creates a new control transfer end point for the given node key and the given target and control transfer type.- Parameters:
nodeKey
- Key of the workflow node.target
- Key of the target node to which to transfer control.controlTransferType
- Type of the control transfer, seeEStandardControlTransferType
for a list of built-in transfer types.- Returns:
- A new control transfer end point for the given node key and the given target and control transfer type.
- See Also:
ControlTransfer
-
normal
public static FlowGraphEndPoint.Normal normal(NodeKey nodeKey)
Creates a new normal end point for the given node key and with no data.- Parameters:
nodeKey
- Key of the workflow node.- Returns:
- A new normal end point for the given node key and with no data.
- See Also:
Normal
-
returning
public static FlowGraphEndPoint.Returning returning(NodeKey nodeKey)
Creates a new returning end point for the given node key and with no data.- Parameters:
nodeKey
- Key of the workflow node.- Returns:
- A new returning end point for the given node key and with no data.
- See Also:
Returning
-
throwing
public static FlowGraphEndPoint.Throwing throwing(NodeKey nodeKey)
Creates a new throwing end point for the given node key and with no data.- Parameters:
nodeKey
- Key of the workflow node.- Returns:
- A new throwing end point for the given node key and with no data.
- See Also:
Throwing
-
-