/**
  * @param Address $address
  *
  * @return string
  * @throws \Exception
  */
 public function generateFormattedAddress(Address $address)
 {
     $formattedAddress = '';
     $streetName = $address->getStreetName();
     $streetNumber = $address->getStreetNumber();
     if ($streetName && $streetNumber) {
         $formattedAddress = sprintf('%s %s', $streetNumber, $streetName);
     } else {
         if ($streetName) {
             $formattedAddress = $streetName;
         }
     }
     return $formattedAddress;
 }
 /**
  * @param Address $address
  * @param string  $precision
  *
  * @return bool
  */
 public function isAccurate(Address $address, $precision)
 {
     if ($precision === GeocodePrecision::COUNTRY && is_null($address->getCountry())) {
         return false;
     } else {
         if ($precision === GeocodePrecision::CITY && is_null($address->getCity())) {
             return false;
         } else {
             if ($precision === GeocodePrecision::STREET_NAME && is_null($address->getStreetName())) {
                 return false;
             } else {
                 if ($precision === GeocodePrecision::STREET_NUMBER && is_null($address->getStreetNumber())) {
                     return false;
                 }
             }
         }
     }
     return true;
 }