/** * Updates the phenomenon time envelope of the specified procedure to include the specified event time. * * @param procedure the procedure * @param eventTime the time to include */ default void updatePhenomenonTimeForProcedure(String procedure, Time eventTime) { CacheValidation.notNullOrEmpty(PROCEDURE, procedure); Objects.requireNonNull(eventTime, EVENT_TIME); final TimePeriod tp = toTimePeriod(eventTime); if (!hasMaxPhenomenonTimeForProcedure(procedure) || getMaxPhenomenonTimeForProcedure(procedure).isBefore(tp.getEnd())) { setMaxPhenomenonTimeForProcedure(procedure, tp.getEnd()); } if (!hasMinPhenomenonTimeForProcedure(procedure) || getMinPhenomenonTimeForProcedure(procedure).isAfter(tp.getStart())) { setMinPhenomenonTimeForProcedure(procedure, tp.getStart()); } }