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 subclasses Normal, Throwing, ControlTransfer, Returning 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 a processing chain has any normal 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 a processing chain has no throwing end points, all exception are caught and handled properly and the processing chain can never fail (barring exceptional circumstances, such as when the workflow engine contains a bug).
Since:
8.2.0
Author:
XIMA MEDIA GmbH
See Also:
  • Field Details

    • nodeKey

      protected final NodeKey nodeKey
  • Method Details

    • equals

      public abstract boolean equals(Object obj)
      Overrides:
      equals in class Object
    • getNodeKey

      public final NodeKey getNodeKey()
      Specified by:
      getNodeKey in interface INodeKeyProviding
      Returns:
      Key of the workflow node representing this end point.
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • 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, see EStandardControlTransferType 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:
    • 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:
    • 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:
    • 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: