in use-cases/vaccination-scheduling/src/main/java/org/acme/vaccinationscheduler/solver/optional/VaccinationCustomConstructionHeuristic.java [146:166]
private void reduceAvailability(
Map<VaccinationCenter, Map<VaccineType, Map<LocalDate, Map<VaccinationSlot, Integer>>>> vaccinationCenterToSlotMap, VaccinationCenter vaccinationCenter,
Map<VaccineType, Map<LocalDate, Map<VaccinationSlot, Integer>>> vaccineTypeToSlotMap, VaccineType vaccineType,
Map<LocalDate, Map<VaccinationSlot, Integer>> dateToSlotMap, LocalDate date,
Map<VaccinationSlot, Integer> slotToAvailabilityMap, VaccinationSlot vaccinationSlot,
int availability) {
availability--;
slotToAvailabilityMap.put(vaccinationSlot, availability);
if (availability == 0) {
slotToAvailabilityMap.remove(vaccinationSlot);
if (slotToAvailabilityMap.isEmpty()) {
dateToSlotMap.remove(date);
if (dateToSlotMap.isEmpty()) {
vaccineTypeToSlotMap.remove(vaccineType);
if (vaccineTypeToSlotMap.isEmpty()) {
vaccinationCenterToSlotMap.remove(vaccinationCenter);
}
}
}
}
}