@Override
  public void populate(final AddressModel source, final CustomerBillToData target)
      throws ConversionException {
    // We may not have any existing billing address.
    if (source == null) {
      return;
    }
    validateParameterNotNull(target, "Parameter [CustomerBillToData] target cannot be null");

    target.setBillToCustomerIdRef(source.getEmail()); // UID is the email address
    target.setBillToEmail(source.getEmail());

    target.setBillToCity(source.getTown());
    target.setBillToCompany(source.getCompany());
    target.setBillToCountry(source.getCountry().getIsocode());
    target.setBillToEmail(source.getEmail());
    target.setBillToFirstName(source.getFirstname());
    target.setBillToLastName(source.getLastname());
    target.setBillToPhoneNumber(source.getPhone1());
    target.setBillToPostalCode(source.getPostalcode());
    target.setBillToState(source.getDistrict());
    target.setBillToStreet1(source.getLine1());
    target.setBillToStreet2(source.getLine2());
  }