The definition of a flow, a program that when executed carries out the
orchestration of a task on behalf of a single client.
A flow definition is a reusable, self-contained controller module that
defines a blue print for an executable user task. Flows typically orchestrate
controlled navigations or dialogs within web applications to guide users
through fulfillment of a business process/goal that takes place over a series
of steps, modeled as states.
Structurally a flow definition is composed of a set of states. A
StateDefinition state is a point in a flow where a behavior is
executed; for example, showing a view, executing an action, spawning a
subflow, or terminating the flow. Different types of states execute different
behaviors in a polymorphic fashion. Most states are
TransitionableStateDefinition transitionable states , meaning they
can respond to events by taking the flow from one state to another.
Each flow has exactly one
FlowDefinition.getStartState() start state which defines
the starting point of the program.
This interface exposes the flow's identifier, states, and other definitional
attributes. It is suitable for introspection by tools as well as user-code at
flow execution time.
Flow definitions may be annotated with attributes.
author: Keith Donald author: Erwin Vervaet |