/** * Defines an "autonomous system reaction", meaning the system will react * without needing an event provided via {@link ModelRunner#reactTo(Object)}. * * @param autonomousSystemReaction * the autonomous system reaction * @return the created system part of this step */ public StepSystemPart<ModelRunner> system(Runnable autonomousSystemReaction) { Objects.requireNonNull(autonomousSystemReaction); AutonomousSystemReaction wrappedSystemReaction = new AutonomousSystemReaction(autonomousSystemReaction); StepSystemPart<ModelRunner> systemPart = system(wrappedSystemReaction); return systemPart; }
/** * Returns the system reaction to be executed when {@link #run()} is * called. * * @return the event object. */ public Object getSystemReaction() { Object systemReaction = step.getSystemReaction(); if (systemReaction instanceof AutonomousSystemReaction) { AutonomousSystemReaction autonomousSystemReaction = (AutonomousSystemReaction) systemReaction; systemReaction = autonomousSystemReaction.getSystemReaction(); } return systemReaction; } }
private String getWordsOfSystemReactionClassName(Step step) { Consumer<?> systemReaction = step.getSystemReaction(); Class<?> systemReactionClass = systemReaction.getClass(); if (systemReaction instanceof AutonomousSystemReaction) { AutonomousSystemReaction autonomousSystemReaction = (AutonomousSystemReaction) systemReaction; systemReactionClass = autonomousSystemReaction.getSystemReactionClass(); } String wordsOfClassName = getLowerCaseWordsOfClassName(systemReactionClass); return wordsOfClassName; }
public <T> FlowlessSystemPart<ModelRunner> system(Consumer<ModelRunner> modelRunnerConsumer) { AutonomousSystemReaction autonomousSystemReaction = new AutonomousSystemReaction(modelRunnerConsumer); return on(ModelRunner.class).system(autonomousSystemReaction); } }
public <T> FlowlessSystemPart<ModelRunner> system(Runnable systemReaction) { AutonomousSystemReaction autonomousSystemReaction = new AutonomousSystemReaction(systemReaction); return on(ModelRunner.class).system(autonomousSystemReaction); }