Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Web Flow
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.webflow.definition
Interface FlowDefinition

All Superinterfaces:
  Annotated

All Known Implementing Classes:
  Flow

    public interface FlowDefinition

extends Annotated

The definition of a flow, a program that when executed carries out 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 `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
`void` | `destroy()` Destroy this flow definition, releasing any resources.
`org.springframework.context.ApplicationContext` | `getApplicationContext()` Returns a reference to application context hosting application objects and services used by this flow definition.
`java.lang.ClassLoader` | `getClassLoader()` Returns the class loader used by this flow definition to load classes.
`java.lang.String` | `getId()` Returns the unique id of this flow.
`java.lang.String[]` | `getPossibleOutcomes()` Returns the outcomes that are possible for this flow to reach.
`StateDefinition` | `getStartState()` Return this flow's starting point.
`StateDefinition` | `getState(java.lang.String id)` Returns the state definition with the specified id.
`boolean` | `inDevelopment()` 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 Detail

### getId

    java.lang.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

    StateDefinition getState(java.lang.String id)
                             throws java.lang.IllegalArgumentException

  Returns the state definition with the specified id.

  Parameters:
    `id` - the state id
  Returns:
    the state definition
  Throws:
    `java.lang.IllegalArgumentException` - if a state with this id does not exist

### getPossibleOutcomes

    java.lang.String[] getPossibleOutcomes()

  Returns the outcomes that are possible for this flow to reach.

  Returns:
    the possible outcomes

### getClassLoader

    java.lang.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.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Web Flow
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD