in use-cases/vaccination-scheduling/src/main/java/org/acme/vaccinationscheduler/bootstrap/DemoDataGenerator.java [235:249]
public VaccineType pickVaccineType(Random random, Integer age, List<VaccineType> vaccineTypeList) {
List<VaccineType> suitableVaccineTypeList;
if (age == null) {
suitableVaccineTypeList = vaccineTypeList;
} else {
suitableVaccineTypeList = vaccineTypeList.stream()
.filter(vaccineType -> {
boolean minimumAgeOk = vaccineType.getMinimumAge() == null || age >= vaccineType.getMinimumAge();
boolean maximumAgeOk = vaccineType.getMaximumAge() == null || age <= vaccineType.getMaximumAge();
return minimumAgeOk && maximumAgeOk;
})
.collect(Collectors.toList());
}
return suitableVaccineTypeList.get(random.nextInt(suitableVaccineTypeList.size()));
}