| Index: third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h
|
| diff --git a/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h b/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h
|
| index 9638b91520601c7d85aaa146748d1d3c6a37d656..e2d057a09bba1e059b4fcec0e0356cd762051a4c 100644
|
| --- a/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h
|
| +++ b/third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_data.h
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (C) 2013 Google Inc.
|
| +// Copyright (C) 2014 Google Inc.
|
| //
|
| // Licensed under the Apache License, Version 2.0 (the "License");
|
| // you may not use this file except in compliance with the License.
|
| @@ -12,93 +12,81 @@
|
| // See the License for the specific language governing permissions and
|
| // limitations under the License.
|
| //
|
| -// An object to store a single address: country code, administrative area,
|
| -// locality, etc. The field names correspond to OASIS xAL standard:
|
| -// https://www.oasis-open.org/committees/ciq/Downloads/ciq_html_docs.zip
|
| +// A struct for storing address data: country code, administrative area,
|
| +// locality, etc. The field names correspond to the OASIS xAL standard:
|
| +// https://www.oasis-open.org/committees/ciq/download.shtml
|
|
|
| #ifndef I18N_ADDRESSINPUT_ADDRESS_DATA_H_
|
| #define I18N_ADDRESSINPUT_ADDRESS_DATA_H_
|
|
|
| #include <libaddressinput/address_field.h>
|
|
|
| +#include <iosfwd>
|
| #include <string>
|
| #include <vector>
|
|
|
| namespace i18n {
|
| namespace addressinput {
|
|
|
| -// Stores an address. Sample usage:
|
| -// AddressData address;
|
| -// address.recipient = "Chen-Kang Yang";
|
| -// address.address_lines.push_back("1098 Alta Ave");
|
| -// address.administrative_area = "CA";
|
| -// address.locality = "Mountain View";
|
| -// address.postal_code = "94043";
|
| -// address.country_code = "US";
|
| -// address.language_code = "en";
|
| -// Process(address);
|
| struct AddressData {
|
| - // Clears |lines| and populates it with the lines of the address as they
|
| - // should appear on an envelope for |country_code|. The |lines| parameter
|
| - // should not be NULL.
|
| - //
|
| - // If there're no address formatting rules for |country_code|, then the
|
| - // default rules are used:
|
| - // https://i18napis.appspot.com/ssl-address/data/ZZ
|
| - void FormatForDisplay(std::vector<std::string>* lines) const;
|
| -
|
| - // Returns the value of the |field|. The parameter should not be
|
| - // STREET_ADDRESS, which comprises multiple fields.
|
| - const std::string& GetFieldValue(AddressField field) const;
|
| -
|
| - // Sets the |field| to |value|. The parameter should not be STREET_ADDRESS,
|
| - // which comprises multiple fields.
|
| - void SetFieldValue(AddressField field, const std::string& value);
|
| -
|
| - // Returns true if all required fields are present (non-empty).
|
| - bool HasAllRequiredFields() const;
|
| -
|
| - // The BCP 47 language code used to guide how the address is formatted for
|
| - // display. The same address may have different representations in different
|
| - // languages.
|
| - // For example, the French name of "New Mexico" is "Nouveau-Mexique".
|
| - std::string language_code;
|
| + // CLDR (Common Locale Data Repository) region code.
|
| + std::string region_code;
|
|
|
| - // The uppercase CLDR country/region code.
|
| - // For example, "US" for United States.
|
| - // (Note: Use "GB", not "UK", for Great Britain.)
|
| - std::string country_code;
|
| + // The address lines represent the most specific part of any address.
|
| + std::vector<std::string> address_line;
|
|
|
| // Top-level administrative subdivision of this country.
|
| - // Examples: US state, IT region, UK constituent nation, JP prefecture.
|
| std::string administrative_area;
|
|
|
| // Generally refers to the city/town portion of an address.
|
| - // Examples: US city, IT comune, UK post town.
|
| std::string locality;
|
|
|
| // Dependent locality or sublocality. Used for UK dependent localities, or
|
| // neighborhoods or boroughs in other locations.
|
| std::string dependent_locality;
|
|
|
| - // Identifies recipients of large volumes of mail. Used in only a few
|
| - // countries.
|
| - // Examples: FR CEDEX.
|
| - std::string sorting_code;
|
| -
|
| - // The alphanumeric value generally assigned to geographical areas, but
|
| - // sometimes also assigned to individual addresses.
|
| - // Examples: "94043", "94043-1351", "SW1W", "SW1W 9TQ".
|
| + // Values are frequently alphanumeric.
|
| std::string postal_code;
|
|
|
| - // The free format street address lines.
|
| - std::vector<std::string> address_lines;
|
| + // This corresponds to the SortingCode sub-element of the xAL
|
| + // PostalServiceElements element. Use is very country-specific.
|
| + std::string sorting_code;
|
| +
|
| + // Language code of the address. Should be in BCP-47 format.
|
| + std::string language_code;
|
|
|
| - // The name of the recipient or contact person. Not present in xAL.
|
| + // Name of recipient or contact person. Not present in xAL.
|
| std::string recipient;
|
| +
|
| + // Returns whether the |field| is empty.
|
| + bool IsFieldEmpty(AddressField field) const;
|
| +
|
| + // Returns the value of the |field|. The parameter must not be STREET_ADDRESS,
|
| + // which comprises multiple fields (will crash otherwise).
|
| + const std::string& GetFieldValue(AddressField field) const;
|
| +
|
| + // Copies |value| into the |field|. The parameter must not be STREET_ADDRESS,
|
| + // which comprises multiple fields (will crash otherwise).
|
| + void SetFieldValue(AddressField field, const std::string& value);
|
| +
|
| + // Returns the value of the |field|. The parameter must be STREET_ADDRESS,
|
| + // which comprises multiple fields (will crash otherwise).
|
| + const std::vector<std::string>& GetRepeatedFieldValue(
|
| + AddressField field) const;
|
| +
|
| + bool operator==(const AddressData& other) const;
|
| +
|
| + // Returns true if the parameter comprises multiple fields, false otherwise.
|
| + // Use it to determine whether to call |GetFieldValue| or
|
| + // |GetRepeatedFieldValue|.
|
| + static bool IsRepeatedFieldValue(AddressField field);
|
| };
|
|
|
| } // namespace addressinput
|
| } // namespace i18n
|
|
|
| +// Produces human-readable output in logging, for example in unit tests.
|
| +std::ostream& operator<<(std::ostream& o,
|
| + const i18n::addressinput::AddressData& address);
|
| +
|
| #endif // I18N_ADDRESSINPUT_ADDRESS_DATA_H_
|
|
|