...
In BeanFlow we implement join conditions using regular Java code. The basic idea is that a Flow will listen to changes in a number of different State objects such as fields a, b and c. You can then write a flow bean to perform the join condition you need. When the condition is met you can then perform whatever logic you wish such as
- stopping the flow
- forking off a new child flow
- changing your state
- changing the state of some other bean
- calling arbitrary Java code
Here is an example flow implemented in Java code for the above code.
Composing flows
One of the main reasons for using an object orientated language is to make composition and reuse possible; similarly BeanFlow allows you to compose flows together to make modular and reusable workflow constructs easily. So BeanFlow attempts to create a collection of reusable flows which you can then use to derive from or aggregate to make whatever flows you need.
...