public static boolean hasSystemReaction(Step step) { return !(step.getSystemReaction() instanceof IgnoresIt<?>); }
/** * Triggers the system reaction of this step. */ @SuppressWarnings("unchecked") public void run() { ((Consumer<Object>) step.getSystemReaction()).accept(event); }
/** * 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; }
private String getStepNameOrIncludedUseCase(Step step) { String stepNameOrIncludedUseCase = ""; if (hasSystemReaction(step)) { Consumer<?> systemReaction = step.getSystemReaction(); if (systemReaction instanceof AbstractContinues) { stepNameOrIncludedUseCase = " " + ((AbstractContinues) systemReaction).getStepName(); } else if (systemReaction instanceof IncludesUseCase) { stepNameOrIncludedUseCase = " " + ((IncludesUseCase) systemReaction).getIncludedUseCase().getName(); } } return stepNameOrIncludedUseCase; } }
private <T> Step triggerSystemReactionForStep(T event, Step step) { if (step.getSystemReaction() == null) { throw new MissingUseCaseStepPart(step, "system"); } stepToBeRun.setupWith(event, step); recordStepNameAndEvent(step, event); setLatestStep(step); try { eventHandler.accept(stepToBeRun); } catch (Exception e) { handleException(e); } continueAfterIncludeStepWhenEndOfIncludedFlowIsReached(); triggerAutonomousSystemReaction(); return step; }