Package de.xima.fc.appointment
Class FreeSlotQueryResultBuilder
- java.lang.Object
-
- de.xima.fc.appointment.FreeSlotQueryResultBuilder
-
public final class FreeSlotQueryResultBuilder extends Object
Builder for aIAppointmentFreeSlotQueryParams. Handles blocking free slots with existing appointments.- Since:
- 6.5.0
- Author:
- XIMA MEDIA GmbH
-
-
Constructor Summary
Constructors Constructor Description FreeSlotQueryResultBuilder(ZoneId targetZone)Creates a new frees slot builder that outputs free slots in the given target time zone.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FreeSlotQueryResultBuilderaddBlocker(Instant instantFrom, Instant instantUntil)Adds a blocker to this builder, such as an appointment that is booked already.FreeSlotQueryResultBuilderaddFreeSlot(com.google.common.collect.Range<ZonedDateTime> range, long capacity)Adds an available slot to this builder.FreeSlotQueryResultBuilderappointmentType(AppointmentType appointmentType)FreeSlotQueryResultBuilderappointmentType(String appointmentType)FreeSlotQueryResultBuilderappointmentType(UUID appointmentType)IAppointmentFreeSlotQueryResultbuild()Creates the free slots from the data of this builder.static IAppointmentFreeSlotQueryResultempty()static IAppointmentFreeSlotQueryResultemptyWithZone(ZoneId zoneId)
-
-
-
Constructor Detail
-
FreeSlotQueryResultBuilder
public FreeSlotQueryResultBuilder(ZoneId targetZone)
Creates a new frees slot builder that outputs free slots in the given target time zone.- Parameters:
targetZone- Zone ID in which the results are returned.
-
-
Method Detail
-
addBlocker
public FreeSlotQueryResultBuilder addBlocker(Instant instantFrom, Instant instantUntil)
Adds a blocker to this builder, such as an appointment that is booked already. A free slot that overlaps with a block cannot be booked and is excluded.- Parameters:
instantFrom- Start date and time of the blocker.instantUntil- End date and time of the blocker.- Returns:
- This for chaining.
-
addFreeSlot
public FreeSlotQueryResultBuilder addFreeSlot(com.google.common.collect.Range<ZonedDateTime> range, long capacity)
Adds an available slot to this builder.- Parameters:
range- Start and end time of the slot.capacity- Capacity of the slot.- Returns:
- This for chaining.
-
appointmentType
public FreeSlotQueryResultBuilder appointmentType(AppointmentType appointmentType)
- Parameters:
appointmentType- The appointment type for which the appointment slots are meant for.- Returns:
- This for chaining.
-
appointmentType
public FreeSlotQueryResultBuilder appointmentType(String appointmentType)
- Parameters:
appointmentType- The appointment type for which the appointment slots are meant for.- Returns:
- This for chaining.
-
appointmentType
public FreeSlotQueryResultBuilder appointmentType(UUID appointmentType)
- Parameters:
appointmentType- The appointment type for which the appointment slots are meant for.- Returns:
- This for chaining.
-
build
public IAppointmentFreeSlotQueryResult build()
Creates the free slots from the data of this builder.- Returns:
- The free slots from the data of this builder.
-
empty
public static IAppointmentFreeSlotQueryResult empty()
- Returns:
- A query result that is empty.
-
emptyWithZone
public static IAppointmentFreeSlotQueryResult emptyWithZone(ZoneId zoneId)
- Parameters:
zoneId- Zone ID to set on the result (IAppointmentFreeSlotQueryResult.getZoneId()). As no times are returned, this has no effect.- Returns:
- A query result that is empty.
-
-