} else { timeUnit = ((TimeModel.AbstractBuilder<?>) tmBuilders.get(0)).getTimeUnit();
@Nullable @Override public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); final Optional<TimeModel.AbstractBuilder<?>> timeModel = getTimeModel(in); final TimeModel.Builder rtb = TimeModel.builder(); if (timeModel.isPresent()) { rtb.withTickLength(timeModel.get().getTickLength()) .withTimeUnit(timeModel.get().getTimeUnit()); } return Scenario.builder(in) .removeModelsOfType(TimeModel.AbstractBuilder.class) .addModel(rtb) .build(); }
timeUnit = ((TimeModel.AbstractBuilder<?>) mb).getTimeUnit();
@Override @Nullable public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); final Optional<TimeModel.AbstractBuilder<?>> timeModel = getTimeModel(in); RealtimeBuilder rtb = TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED); if (timeModel.isPresent()) { // copy properties from existing time model rtb = rtb.withTickLength(timeModel.get().getTickLength()) .withTimeUnit(timeModel.get().getTimeUnit()); } // else: in this case we don't copy properties, we use the defaults return Scenario.builder(in) .removeModelsOfType(TimeModel.AbstractBuilder.class) .addModel(rtb) .build(); }
@Override @Nullable public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); final Optional<TimeModel.AbstractBuilder<?>> timeModel = getTimeModel(in); RealtimeBuilder rtb = TimeModel.builder() .withRealTime() .withStartInClockMode(ClockMode.SIMULATED); if (timeModel.isPresent()) { // copy properties from existing time model rtb = rtb.withTickLength(timeModel.get().getTickLength()) .withTimeUnit(timeModel.get().getTimeUnit()); } // else: in this case we don't copy properties, we use the defaults return Scenario.builder(in) .removeModelsOfType(TimeModel.AbstractBuilder.class) .addModel(rtb) .build(); }
@Nullable @Override public Scenario apply(@Nullable Scenario input) { final Scenario in = verifyNotNull(input); final Optional<TimeModel.AbstractBuilder<?>> timeModel = getTimeModel(in); final TimeModel.Builder rtb = TimeModel.builder(); if (timeModel.isPresent()) { rtb.withTickLength(timeModel.get().getTickLength()) .withTimeUnit(timeModel.get().getTimeUnit()); } return Scenario.builder(in) .removeModelsOfType(TimeModel.AbstractBuilder.class) .addModel(rtb) .build(); }
@Override public String toString() { return super.toString() + ".withRealtime()"; }
/** * Sets up the model. */ @SuppressWarnings("unchecked") @Before public void setUp() { TestUtil.testEnum(ClockEventType.class); TestUtil.testEnum(Trigger.class); TestUtil.testEnum(SimpleState.class); TestUtil.testEnum(ClockMode.class); model = (T) builder.build(FakeDependencyProvider.empty()); }
TimeModel(AbstractBuilder<?> builder, Enum<?>... additionalEventTypes) { tickListeners = new CopyOnWriteArraySet<>(); final Set<Enum<?>> allEventTypes = ImmutableSet.<Enum<?>>builder() .add(ClockEventType.values()) .add(additionalEventTypes) .build(); eventDispatcher = new EventDispatcher(allEventTypes); // time lapse is reused in a Flyweight kind of style timeLapse = new TimeLapse(builder.getTimeUnit(), 0L, builder.getTickLength()); }