public function validate($value, Constraint $constraint)
{
if (!$value instanceof AddressInterface) {
throw new UnexpectedTypeException($value, 'AddressInterface');
}
$address = $value;
$countryCode = $address->getCountryCode();
if ($countryCode === null || $countryCode === '') {
return;
}
$values = $this->extractAddressValues($address);
$addressFormat = $this->addressFormatRepository->get($address->getCountryCode());
$this->validateFields($values, $addressFormat, $constraint);
$subdivisions = $this->validateSubdivisions($values, $addressFormat, $constraint);
$this->validatePostalCode($address->getPostalCode(), $subdivisions, $addressFormat, $constraint);
}