// Copyright © 2015 HSL <https://www.hsl.fi> // This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses. package fi.hsl.parkandride.core.domain.validation; import java.util.Map; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; public class MinElementMapValidator implements ConstraintValidator<MinElement, Map<?, ? extends Number>> { private long min; private String message; @Override public void initialize(MinElement constraintAnnotation) { this.min = constraintAnnotation.value(); this.message = constraintAnnotation.message(); } @Override public boolean isValid(Map<?, ? extends Number> map, ConstraintValidatorContext context) { context.disableDefaultConstraintViolation(); boolean ok = true; if (map != null) { for (Map.Entry<?, ? extends Number> entry: map.entrySet()) { Number num = entry.getValue(); if (num != null && num.longValue() < min) { context.buildConstraintViolationWithTemplate(message) .addBeanNode().inIterable().atKey(entry.getKey()).addConstraintViolation(); ok=false; } } } return ok; } }