/**
  * {@inheritdoc}
  */
 public function validate(\Magento\Customer\Api\Data\CustomerInterface $customer)
 {
     $customerErrors = $this->validator->validateData($this->extensibleDataObjectConverter->toFlatArray($customer, [], '\\Magento\\Customer\\Api\\Data\\CustomerInterface'), [], 'customer');
     $validationResults = $this->validationResultsDataFactory->create();
     if ($customerErrors !== true) {
         return $validationResults->setIsValid(false)->setMessages($this->validator->getMessages());
     }
     $oldAddresses = $customer->getAddresses();
     $customerModel = $this->customerFactory->create()->updateData($customer->setAddresses([]));
     $customer->setAddresses($oldAddresses);
     $result = $customerModel->validate();
     if (true !== $result && is_array($result)) {
         return $validationResults->setIsValid(false)->setMessages($result);
     }
     return $validationResults->setIsValid(true)->setMessages([]);
 }
 /**
  * {@inheritdoc}
  */
 public function validate(CustomerInterface $customer)
 {
     $validationResults = $this->validationResultsDataFactory->create();
     $oldAddresses = $customer->getAddresses();
     $customerModel = $this->customerFactory->create()->updateData($customer->setAddresses([]));
     $customer->setAddresses($oldAddresses);
     $result = $this->getEavValidator()->isValid($customerModel);
     if ($result === false && is_array($this->getEavValidator()->getMessages())) {
         return $validationResults->setIsValid(false)->setMessages(call_user_func_array('array_merge', $this->getEavValidator()->getMessages()));
     }
     return $validationResults->setIsValid(true)->setMessages([]);
 }