protected function validateFields($values, AddressFormat $addressFormat, $constraint)
{
// Validate the presence of required fields.
$requiredFields = $addressFormat->getRequiredFields();
foreach ($requiredFields as $field) {
if (empty($values[$field]) && in_array($field, $constraint->fields)) {
$this->addViolation($field, $constraint->notBlankMessage, $values[$field], $addressFormat);
}
}
// Validate the absence of unused fields.
$unusedFields = array_diff(AddressField::getAll(), $addressFormat->getUsedFields());
foreach ($unusedFields as $field) {
if (!empty($values[$field]) && in_array($field, $constraint->fields)) {
$this->addViolation($field, $constraint->blankMessage, $values[$field], $addressFormat);
}
}
}