class RuleStatelessScenarioExecutableBuilder implements RuleScenarioExecutableBuilder {

    protected Command<ExecutionResults> generateCommands(CoverageAgendaListener coverageAgendaListener) {

        List<Command<?>> toReturn = new ArrayList<>();

        toReturn.add(new AddCoverageListenerCommand(coverageAgendaListener));

        if (agendaGroup != null) {
            toReturn.add(commands.newAgendaGroupSetFocus(agendaGroup));
        }

        if (!inputs.isEmpty()) {
            toReturn.add(commands.newInsertElements(inputs));
        }
        toReturn.add(commands.newFireAllRules());
        internalConditions.values()
                .forEach(factToCheck -> toReturn.add(new ValidateFactCommand(factToCheck)));

        return commands.newBatchExecution(toReturn);
    }

    protected  RuleStatelessScenarioExecutableBuilder(KieContainer kieContainer, String sessionName);

}