Interface FlowDefinition
- All Superinterfaces:
Annotated
- All Known Implementing Classes:
Flow
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 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
transitionable states
, meaning they can respond to events by taking the flow
from one state to another.
Each flow has exactly one 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, Erwin Vervaet
-
Method Summary
Modifier and TypeMethodDescriptionvoid
destroy()
Destroy this flow definition, releasing any resources.org.springframework.context.ApplicationContext
Returns a reference to application context hosting application objects and services used by this flow definition.Returns the class loader used by this flow definition to load classes.getId()
Returns the unique id of this flow.String[]
Returns the outcomes that are possible for this flow to reach.Return this flow's starting point.Returns the state definition with the specified id.boolean
Returns true if this flow definition is currently in development (running in development mode).Methods inherited from interface org.springframework.webflow.core.Annotated
getAttributes, getCaption, getDescription
-
Method Details
-
getId
String getId()Returns the unique id of this flow.- Returns:
- the flow id
-
getStartState
StateDefinition getStartState()Return this flow's starting point.- Returns:
- the start state
-
getState
Returns the state definition with the specified id.- Parameters:
id
- the state id- Returns:
- the state definition
- Throws:
IllegalArgumentException
- if a state with this id does not exist
-
getPossibleOutcomes
String[] getPossibleOutcomes()Returns the outcomes that are possible for this flow to reach.- Returns:
- the possible outcomes
-
getClassLoader
ClassLoader getClassLoader()Returns the class loader used by this flow definition to load classes.- Returns:
- the class loader
-
getApplicationContext
org.springframework.context.ApplicationContext getApplicationContext()Returns a reference to application context hosting application objects and services used by this flow definition.- Returns:
- the application context
-
inDevelopment
boolean inDevelopment()Returns true if this flow definition is currently in development (running in development mode).- Returns:
- the development flag
-
destroy
void destroy()Destroy this flow definition, releasing any resources. After the flow is destroyed it cannot be started again.
-