presto-main/src/main/java/io/prestosql/execution/StateMachine.java/StateMachine/StateMachine
class StateMachine:    public StateMachine(String name, Executor executor, T initialState, Iterable<T> terminalStates)
    {
        this.name = requireNonNull(name, "name is null");
        this.executor = requireNonNull(executor, "executor is null");
        this.state = requireNonNull(initialState, "initialState is null");
        this.terminalStates = ImmutableSet.copyOf(requireNonNull(terminalStates, "terminalStates is null"));
    }