/** * Defines the type of user command objects that this step accepts. Commands of this * type can cause a system reaction. * * <p> * Given that the step's condition is true, and the actor is right, the system * reacts to objects that are instances of the specified class or instances of * any direct or indirect subclass of the specified class. * * @param eventClass * the class of commands the system reacts to in this step * @param <T> * the type of the class * @return the created user part of this step */ public <T> StepUserPart<T> user(Class<T> eventClass) { Objects.requireNonNull(eventClass); return new StepUserPart<>(stepPart, eventClass); }