Flow processors

A flow processor (an implementation of the Automaton, which is a state machine) defines a process in the application presentation layer as a series of states. In general, a flow processor performs an action in a state and transitions to another state based on the result of the action or based on events that occur within a view associated with the state. The flow processor can provide navigation from panel to panel, handle data mapping across the process, and launch client operations or business processes in response to certain events. This is demonstrated in the following statechart diagram for the flow processor that handles a simple mortgage application. The boxes in the system side are the states and the boxes in the left are the choices available to the user.

Diagram depicting how the flow processor handles a simple mortgage application

To use a flow processor in this way, a user externally defines the set of states of the process, along with their corresponding transitions (specific events fired by the visual components) and the actions (such as perform a business process in the application logic layer, start another processor implementing a subflow, and open another view) for the flow processor. In this way, the user does not hardcode the execution of specific actions into the views.

Like the other components of the toolkit, users can extend all the constituent parts of a flow processor to get the exact behavior required in a specific customer environment. The toolkit provides entities as both interfaces and implemented classes with a base behavior that may be adequate in many cases.