A path from one {@link TransitionableState state} to another {@link State state}.
When executed a transition takes a flow execution from its current state, called the source state, to another state, called the target state. A transition may become eligible for execution on the occurrence of an {@link Event} from within a transitionable source state.
When an event occurs within this transition's source TransitionableState
the determination of the eligibility of this transition is made by a TransitionCriteria
object called the matching criteria. If the matching criteria returns true
this transition is marked eligible for execution for that event.
Determination as to whether an eligible transition should be allowed to execute is made by a TransitionCriteria
object called the execution criteria. If the execution criteria test fails this transition will roll back and reenter its source state. If the execution criteria test succeeds this transition will execute and take the flow to the transition's target state.
The target state of this transition is typically specified at configuration time in a static manner. If the target state of this transition needs to be calculated in a dynamic fashion at runtime configure a {@link TargetStateResolver} that supports such calculations.
@see TransitionableState
@see TransitionCriteria
@see TargetStateResolver
@author Keith Donald
@author Erwin Vervaet