com.cmt.statemachine.builder.StateMachineBuilder Maven / Gradle / Ivy
The newest version!
package com.cmt.statemachine.builder;
import com.cmt.statemachine.StateMachine;
/**
* StateMachineBuilder
*
* @author Frank Zhang
* @date 2020-02-07 5:32 PM
*/
public interface StateMachineBuilder {
/**
* Builder for one transition
* @return External transition builder
*/
ExternalTransitionBuilder externalTransition();
/**
* Builder for multiple transitions
* @return External transition builder
*/
ExternalTransitionsBuilder externalTransitions();
/**
* Start to build internal transition
* @return Internal transition builder
*/
InternalTransitionBuilder internalTransition();
StateMachine build(String machineId);
/**
* Specify a initial state
*
* @param initial the initial state
* @return StateMachineBuilder
*/
StateMachineBuilder initialState(S initial);
}