src/main/java/com/github/oxo42/stateless4j/StateMachine.java
public <TArg0, TArg1, TArg2> void fire(TriggerWithParameters3<TArg0, TArg1, TArg2, T> trigger, TArg0 arg0, TArg1 arg1, TArg2 arg2) {
        assert trigger != null : TRIGGER_IS_NULL;
        publicFire(trigger.getTrigger(), arg0, arg1, arg2);
    }
public <TArg0, TArg1, TArg2> void fire(TriggerWithParameters3<TArg0, TArg1, TArg2, T> trigger, TArg0 arg0, TArg1 arg1, TArg2 arg2) {
        assert trigger != null : TRIGGER_IS_NULL;
        publicFire(trigger.getTrigger(), arg0, arg1, arg2);
    }
Transition from the current state via the specified trigger.
The target state is determined by the configuration of the current state.
Actions associated with leaving the current state and entering the new one
will be invoked.

@param trigger The trigger to fire
@param arg0    The first argument
@param arg1    The second argument
@param arg2    The third argument
@param <TArg0> Type of the first trigger argument
@param <TArg1> Type of the second trigger argument
@param <TArg2> Type of the third trigger argument