public class BaseAppointmentHelper extends Object
| Modifier and Type | Field and Description |
|---|---|
static LocalDate |
WEEK_START
The week to use for the UI that lets the user configure the available
AppointmentSlots. |
| Constructor and Description |
|---|
BaseAppointmentHelper() |
| Modifier and Type | Method and Description |
|---|---|
static List<AppointmentSlot> |
applySlotConstraints(List<AppointmentSlot> slots,
AppointmentTemplate template)
Sanitizes the given slots so that they conform the restrictions imposed by the given appointment template.
|
static com.google.common.collect.ImmutableRangeSet<Instant> |
createClosedDateTimeRanges(List<AppointmentClosingTime> closingTimes,
com.google.common.collect.BoundType boundType,
ZoneId sourceZone)
Creates the temporal disjoint intervals corresponding the given closing times.
|
static List<AppointmentSlot> |
createDefaultSlots()
Creates the default
AppointmentTemplate.getSlots() when none are set yet. |
static AppointmentSlot |
createSlot(LocalDateTime dateTime)
Creates a new slot starting at the given date.
|
static com.google.common.collect.Range<LocalDateTime> |
getSlotDateTime(AppointmentSlot slot) |
static com.google.common.collect.Range<LocalDateTime> |
getSlotDateTimeRange(AppointmentSlot slot)
Returns the date time range of the given slot.
|
static LocalDateTime |
getSlotFromDateTime(AppointmentSlot slot) |
static LocalDateTime |
getSlotToDateTime(AppointmentSlot slot) |
static LocalTime |
getTimeOnGrid(LocalTime time,
Duration duration)
Adjusts the given time to a time that lies on the grid defined by the appointment type.
|
static boolean |
isSlotOverlapping(AppointmentTemplate template,
AppointmentSlot slot)
Checks whether the given slot is overlapping any slot of the given template.
|
static AppointmentSlot |
mergeOverlappingSlots(AppointmentSlot lhs,
AppointmentSlot rhs)
Takes two overlapping slots and creates a new slot with the start and end time set to the overlapping interval.
|
static List<AppointmentSlot> |
mergeOverlappingSlots(List<AppointmentSlot> slots)
Merges all overlapping slots.
|
public static final LocalDate WEEK_START
AppointmentSlots.public static List<AppointmentSlot> applySlotConstraints(List<AppointmentSlot> slots, AppointmentTemplate template)
slots - Slots to constrain.template - Template to which the slots must adhere.public static com.google.common.collect.ImmutableRangeSet<Instant> createClosedDateTimeRanges(List<AppointmentClosingTime> closingTimes, com.google.common.collect.BoundType boundType, ZoneId sourceZone)
closingTimes - List of closing times to process.boundType - Whether to create closed or open ranges from the closing times.sourceZone - The source time zone in which the given closing times are interpreted. Should usually be the
AppointmentTemplate.getZoneId() of the AppointmentClosingTime.getAppointmentTemplate().public static List<AppointmentSlot> createDefaultSlots()
AppointmentTemplate.getSlots() when none are set yet.public static AppointmentSlot createSlot(LocalDateTime dateTime)
dateTime - Starting date for the new slot.public static com.google.common.collect.Range<LocalDateTime> getSlotDateTime(AppointmentSlot slot)
slot - A slot to process.WEEK_START.public static com.google.common.collect.Range<LocalDateTime> getSlotDateTimeRange(AppointmentSlot slot)
slot - A slot to process.public static LocalDateTime getSlotFromDateTime(AppointmentSlot slot)
slot - A slot to use.WEEK_START.public static LocalDateTime getSlotToDateTime(AppointmentSlot slot)
slot - A slot to use.WEEK_START.public static LocalTime getTimeOnGrid(LocalTime time, Duration duration)
time - A local time to process.duration - Duration of the grid.public static boolean isSlotOverlapping(AppointmentTemplate template, AppointmentSlot slot)
template - An AppointmentTemplate with slots.slot - A slot to check.true if the given slot has any overlap with any slot of the given template.public static AppointmentSlot mergeOverlappingSlots(AppointmentSlot lhs, AppointmentSlot rhs)
lhs - First slot to merge.rhs - Seconds slot to merge.public static List<AppointmentSlot> mergeOverlappingSlots(List<AppointmentSlot> slots)
slots - List of slots to merge.Copyright © 2020 XIMA MEDIA GmbH. All rights reserved.