/**
  * Register EmailAddress object
  *
  * @param EmailAddress $obj
  * @throws \LogicException
  */
 public function addAddress(EmailAddress $obj)
 {
     $key = strtolower($obj->getEmail());
     if (isset($this->addresses[$key])) {
         throw new \LogicException(sprintf('The email address "%s" already exists in the batch.', $obj->getEmail()));
     }
     $this->addresses[$key] = $obj;
 }
 /**
  * Determines whether two email addresses are the same
  *
  * @param EmailAddress|null $address1
  * @param EmailAddress|null $address2
  *
  *@return bool
  */
 protected function areAddressesEqual($address1, $address2)
 {
     if ($address1 === $address2) {
         return true;
     }
     if (null === $address1 || null === $address2) {
         return false;
     }
     return strtolower($address1->getEmail()) === strtolower($address2->getEmail());
 }