Interface Join

All Superinterfaces:
CanCopy<Join>, HasId<JoinId>, HasParent<Join,WorkflowDefinition>, Model<Join,JoinId>, Validatable

public interface Join extends Model<Join,JoinId>, HasParent<Join,WorkflowDefinition>
Represents a join operation in a workflow definition. A join is a mechanism that synchronizes multiple parallel workflow paths by waiting for all incoming active states to complete their transitions before activating the resulting state.

Joins are essential for implementing complex workflow patterns where multiple parallel branches need to converge. They ensure that all parallel activities complete before proceeding to the next phase of the workflow.

Each join can have associated conditions that determine when the join should be triggered, and a default result that specifies the destination state and any additional processing to be performed.

Since:
1.0
See Also:
  • Method Details

    • getConditions

      Conditions getConditions()
      Returns the conditions associated with this join. These conditions determine when the join should be triggered and what criteria must be met for the join to complete successfully.
      Returns:
      the conditions for this join
    • getResult

      DefaultResult getResult()
      Returns the default result of this join. The result specifies the destination state and any additional processing to be performed when the join completes.
      Returns:
      the default result of this join
    • toBuilder

      Creates a new BuildableJoinBuilder initialized with the current join definition. This method allows for easy modification of existing join definitions by providing a builder that starts with the current state of the join.

      The returned builder can be used to modify the join definition by adding, removing, or modifying conditions, results, and other join elements. After making the desired changes, call BuildableJoinBuilder.build() to create a new Join instance.

      This is particularly useful for:

      • Creating variations of existing joins
      • Implementing join versioning
      • Making incremental changes to join definitions
      Returns:
      a new BuildableJoinBuilder initialized with this join's current state
      See Also: