// Copyright © 2015 HSL <https://www.hsl.fi> // This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses. package fi.hsl.parkandride.core.domain; import org.joda.time.*; import java.util.Optional; public enum DayType { BUSINESS_DAY, SATURDAY, SUNDAY; public static DayType valueOf(ReadableInstant timestamp) { return valueOf(Optional.ofNullable(timestamp).map(ts -> ts.get(DateTimeFieldType.dayOfWeek())).orElse(null)); } public static DayType valueOf(ReadablePartial timestamp) { return valueOf(Optional.ofNullable(timestamp).map(ts -> ts.get(DateTimeFieldType.dayOfWeek())).orElse(null)); } private static DayType valueOf(Integer dayOfWeek) { switch (dayOfWeek) { case DateTimeConstants.SATURDAY: return SATURDAY; case DateTimeConstants.SUNDAY: return SUNDAY; default: return BUSINESS_DAY; } } }