Web Flow Definition Language

Lexaden Web Flow Language is a declarative flow definition language for authoring flows with hierarchical state structure.


Flow Rules Structure


There is a number of states defined:

Application state

Root state for the entire application, must be only one application state.

<application id="application">
</application>

Profile State

Entry point state for the authenticated user role, is configured in Profile entity. For anonymous user the default profile state is taken.

<profile id="default" 
         initial="platform" 
         extends="profile">
</profile>

Package State

Defined to group relative module state and event configurations into packages.

<package:state id="roles" 
         initial="user.role.manage" 
         extends="package">
</package:state>

Module state

Defined to group controller states into modules by domains like organization, role, period, group, etc.

<module id="platform" 
         initial="welcome" 
         extends="module">
</module>

Controller State

The most important state in application since it describes transitions logic and is bound to appropriate Controller class in application by annotations. Action states defined in controller state are bound to appropriate methods in Controller class.

<controller id="controller" 
         initial="initView">
</controller>

Action State

On action state appropriate annotated method is called in controller class.

<action id="initView" 
         extends="action"> 
</action>

View State

On view state flow engine particularly injects view (view is a component) in appropriate placeholder of appropriate view container. See separate thread for more details.

<view id="displayView" 
         extends="view">
</view>

Event

flow engine event. Event with type=flow indicate a flow entry event, such events trigger opening top tabs. Any java object can be sent/received in event content.

<module id="contact.us" 
         extends="contact.us"/>
<on type="flow" event="contact.us.flow" 
         to="contact.us"/>

Lexaden
Easy to keep focus on business needs