/** * Adds an additional stop condition to the controller in AND fashion. The * first stop condition is defined by {@link Scenario#getStopCondition()}. * @param stp The builder that constructs the {@link StopCondition}. * @return A new {@link Builder} instance. * @see StopConditions */ @CheckReturnValue public Builder withAndStopCondition(StopCondition stp) { final StopModelBuilder smb; if (getStopModelBuilder().stopCondition().equals( StopConditions.alwaysFalse())) { smb = StopModelBuilder.create(stp); } else { smb = StopModelBuilder.create(StopConditions.and(getStopModelBuilder() .stopCondition(), stp)); } return create(getScenario(), getEventHandlers(), getNumberOfTicks(), smb, isIgnoreRedundantHandlers()); }
/** * Adds an additional stop condition to the controller in OR fashion. The * first stop condition is defined by {@link Scenario#getStopCondition()}. * @param stp The builder that constructs the {@link StopCondition}. * @return A new {@link Builder} instance. * @see StopConditions */ @CheckReturnValue public Builder withOrStopCondition(StopCondition stp) { final StopModelBuilder smb; if (getStopModelBuilder().stopCondition().equals( StopConditions.alwaysFalse())) { smb = StopModelBuilder.create(stp); } else { smb = StopModelBuilder.create(StopConditions.or(getStopModelBuilder() .stopCondition(), stp)); } return create(getScenario(), getEventHandlers(), getNumberOfTicks(), smb, isIgnoreRedundantHandlers()); }
/** * Adds an additional stop condition to the controller in AND fashion. The * first stop condition is defined by {@link Scenario#getStopCondition()}. * @param stp The builder that constructs the {@link StopCondition}. * @return A new {@link Builder} instance. * @see StopConditions */ @CheckReturnValue public Builder withAndStopCondition(StopCondition stp) { final StopModelBuilder smb; if (getStopModelBuilder().stopCondition().equals( StopConditions.alwaysFalse())) { smb = StopModelBuilder.create(stp); } else { smb = StopModelBuilder.create(StopConditions.and(getStopModelBuilder() .stopCondition(), stp)); } return create(getScenario(), getEventHandlers(), getNumberOfTicks(), smb, isIgnoreRedundantHandlers()); }
/** * Adds an additional stop condition to the controller in OR fashion. The * first stop condition is defined by {@link Scenario#getStopCondition()}. * @param stp The builder that constructs the {@link StopCondition}. * @return A new {@link Builder} instance. * @see StopConditions */ @CheckReturnValue public Builder withOrStopCondition(StopCondition stp) { final StopModelBuilder smb; if (getStopModelBuilder().stopCondition().equals( StopConditions.alwaysFalse())) { smb = StopModelBuilder.create(stp); } else { smb = StopModelBuilder.create(StopConditions.or(getStopModelBuilder() .stopCondition(), stp)); } return create(getScenario(), getEventHandlers(), getNumberOfTicks(), smb, isIgnoreRedundantHandlers()); }
/** * Test the default settings of a scenario. */ @Test public void testDefaults() { final Scenario.Builder builder = Scenario .builder(Scenario.DEFAULT_PROBLEM_CLASS); assertThat(builder.getTimeWindow()) .isEqualTo(TimeWindow.create(0, 8 * 60 * 60 * 1000)); assertThat(builder.getStopCondition()) .isEqualTo(StopConditions.alwaysFalse()); final Scenario scenario = builder.build(); assertTrue(scenario.getModelBuilders().isEmpty()); assertSame(Scenario.DEFAULT_PROBLEM_CLASS, scenario.getProblemClass()); assertEquals("", scenario.getProblemInstanceId()); assertThat(scenario.getStopCondition()).isEqualTo( StopConditions.alwaysFalse()); assertEquals(TimeWindow.create(0, 8 * 60 * 60 * 1000), scenario.getTimeWindow()); }