private void reduceAvailability()

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);
                    }
                }
            }
        }
    }