Class FsmBuilder<S extends java.lang.Enum<S>,E>
- java.lang.Object
-
- com.digitalpetri.strictmachine.dsl.FsmBuilder<S,E>
-
public class FsmBuilder<S extends java.lang.Enum<S>,E> extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description FsmBuilder()FsmBuilder(java.util.concurrent.Executor executor, java.lang.String loggerName)FsmBuilder(java.util.concurrent.Executor executor, java.lang.String loggerName, java.util.Map<java.lang.String,java.lang.String> mdc)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTransition(Transition<S,E> transition)Add a manually definedTransition.voidaddTransitionAction(TransitionAction<S,E> transitionAction)Add a manually definedTransitionAction.Fsm<S,E>build(S initialState)ViaBuilder<S,E>onInternalTransition(S state)Start defining anActionthat will be executed after an internal transition from/tostate.ActionFromBuilder<S,E>onTransitionFrom(java.util.function.Predicate<S> filter)Start defining anActionthat will execute after a transition from any state that passesfilter.ActionFromBuilder<S,E>onTransitionFrom(S state)Start defining anActionthat will execute after a transition fromstate.ActionToBuilder<S,E>onTransitionTo(java.util.function.Predicate<S> filter)Start defining anActionthat will execute after a transition to any state that passesfilter.ActionToBuilder<S,E>onTransitionTo(S state)Start defining anActionthat will executed after a transition tostate.voidsetActionProxy(ActionProxy<S,E> actionProxy)Configure anActionProxyfor theFsminstance being built.TransitionBuilder<S,E>when(S state)Start defining aTransitionfrom statestate.
-
-
-
Constructor Detail
-
FsmBuilder
public FsmBuilder()
-
FsmBuilder
public FsmBuilder(java.util.concurrent.Executor executor, java.lang.String loggerName)
-
FsmBuilder
public FsmBuilder(java.util.concurrent.Executor executor, java.lang.String loggerName, java.util.Map<java.lang.String,java.lang.String> mdc)
-
-
Method Detail
-
when
public TransitionBuilder<S,E> when(S state)
Start defining aTransitionfrom statestate.- Parameters:
state- the state the transition begins in.- Returns:
- a
TransitionBuilder.
-
onInternalTransition
public ViaBuilder<S,E> onInternalTransition(S state)
Start defining anActionthat will be executed after an internal transition from/tostate.The criteria for the event that causes this transition is defined on the returned
ViaBuilder.- Parameters:
state- the state experiencing an internal transition.- Returns:
- a
ViaBuilder.
-
onTransitionTo
public ActionToBuilder<S,E> onTransitionTo(S state)
Start defining anActionthat will executed after a transition tostate.Further criteria for execution will be defined on the returned
ActionToBuilder.- Parameters:
state- the state being transitioned to.- Returns:
- an
ActionToBuilder.
-
onTransitionTo
public ActionToBuilder<S,E> onTransitionTo(java.util.function.Predicate<S> filter)
Start defining anActionthat will execute after a transition to any state that passesfilter.Further criteria for execution will be defined on the returned
ActionToBuilder.- Parameters:
filter- the filter for states being transitioned to.- Returns:
- an
ActionToBuilder.
-
onTransitionFrom
public ActionFromBuilder<S,E> onTransitionFrom(S state)
Start defining anActionthat will execute after a transition fromstate.- Parameters:
state- the state being transitioned from.- Returns:
- an
ActionFromBuilder.
-
onTransitionFrom
public ActionFromBuilder<S,E> onTransitionFrom(java.util.function.Predicate<S> filter)
Start defining anActionthat will execute after a transition from any state that passesfilter.- Parameters:
filter- the filter for states being transitioned from.- Returns:
- an
ActionFromBuilder.
-
addTransition
public void addTransition(Transition<S,E> transition)
Add a manually definedTransition.- Parameters:
transition- theTransitionto add.
-
addTransitionAction
public void addTransitionAction(TransitionAction<S,E> transitionAction)
Add a manually definedTransitionAction.- Parameters:
transitionAction- theTransitionActionto add.
-
setActionProxy
public void setActionProxy(ActionProxy<S,E> actionProxy)
Configure anActionProxyfor theFsminstance being built.- Parameters:
actionProxy- anActionProxyfor theFsminstance being built.
-
-