1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#ifndef COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_ADDRESS_H_ 6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_ADDRESS_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h" 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "components/autofill/core/browser/phone_number_i18n.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace base { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class DictionaryValue; 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace autofill { 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class AutofillProfile; 223240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdochclass AutofillType; 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace wallet { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// TODO(ahutter): This address is a lot like 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// components/autofill/core/browser/address.h. There should be a super 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// class that both extend from to clean up duplicated code. See 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// http://crbug.com/164463. 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Address contains various address fields that have been populated from the 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// user's Online Wallet. It is loosely modeled as a subet of the OASIS 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// "extensible Address Language" (xAL); see 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// http://www.oasis-open.org/committees/ciq/download.shtml. 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Address { 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(ahutter): Use additional fields (descriptive_name, is_post_box, 38868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // is_valid, is_default) when SaveToWallet is implemented. 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // See http://crbug.com/164284. 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Address(); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Using the raw info in |profile|, create a wallet::Address. 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit Address(const AutofillProfile& profile); 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Address(const std::string& country_name_code, 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& recipient_name, 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const std::vector<base::string16>& street_address, 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& locality_name, 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::string16& dependent_locality_name, 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& administrative_area_name, 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& postal_code_number, 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::string16& sorting_code, 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& phone_number, 55a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const std::string& object_id, 56a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const std::string& language_code); 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ~Address(); 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns an empty scoped_ptr if input is invalid or a valid address that is 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // selectable for Google Wallet use. Does not require "id" in |dictionary|. 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // IDs are not required for billing addresses. 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static scoped_ptr<Address> CreateAddress( 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::DictionaryValue& dictionary); 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // TODO(ahutter): Make obvious in the function name that this public method 6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // only works for shipping address and assumes existance of "postal_address". 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Builds an Address from |dictionary|, which must have an "id" field. This 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // function is designed for use with shipping addresses. The function may fail 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // and return an empty pointer if its input is invalid. 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static scoped_ptr<Address> CreateAddressWithID( 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::DictionaryValue& dictionary); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns an empty scoped_ptr if input in invalid or a valid address that 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // can only be used for displaying to the user. 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static scoped_ptr<Address> CreateDisplayAddress( 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::DictionaryValue& dictionary); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // If an address is being upgraded, it will be sent to the server in a 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // different format and with a few additional fields set, most importantly 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |object_id_|. 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue> ToDictionaryWithID() const; 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Newly created addresses will not have an associated |object_id_| and are 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // sent to the server in a slightly different format. 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<base::DictionaryValue> ToDictionaryWithoutID() const; 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns a string that summarizes this address, suitable for display to 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // the user. 90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 DisplayName() const; 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns a string that could be used as a sub-label, suitable for display 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // to the user together with DisplayName(). 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 DisplayNameDetail() const; 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 964e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Returns the phone number as a string that is suitable for display to the 974e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // user. 984e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) base::string16 DisplayPhoneNumber() const; 994e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns data appropriate for |type|. 1013240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch base::string16 GetInfo(const AutofillType& type, 1023240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch const std::string& app_locale) const; 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& country_name_code() const { return country_name_code_; } 105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& recipient_name() const { return recipient_name_; } 1065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const std::vector<base::string16>& street_address() const { 1075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return street_address_; 1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& locality_name() const { return locality_name_; } 110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& administrative_area_name() const { 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return administrative_area_name_; 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& postal_code_number() const { 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return postal_code_number_; 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& phone_number() const { return phone_number_; } 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& object_id() const { return object_id_; } 11890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool is_complete_address() const { 11990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return is_complete_address_; 12090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 121a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch const std::string& language_code() const { return language_code_; } 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_country_name_code(const std::string& country_name_code) { 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) country_name_code_ = country_name_code; 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_recipient_name(const base::string16& recipient_name) { 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) recipient_name_ = recipient_name; 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void set_street_address(const std::vector<base::string16>& street_address) { 1305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) street_address_ = street_address; 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_locality_name(const base::string16& locality_name) { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) locality_name_ = locality_name; 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void set_dependent_locality_name( 1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::string16& dependent_locality_name) { 1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) dependent_locality_name_ = dependent_locality_name; 1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_administrative_area_name( 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const base::string16& administrative_area_name) { 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) administrative_area_name_ = administrative_area_name; 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void set_postal_code_number(const base::string16& postal_code_number) { 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) postal_code_number_ = postal_code_number; 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void set_sorting_code(const base::string16& sorting_code) { 1475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) sorting_code_ = sorting_code; 1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 1494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void SetPhoneNumber(const base::string16& phone_number); 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void set_object_id(const std::string& object_id) { 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) object_id_ = object_id; 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void set_is_complete_address(bool is_complete_address) { 15490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) is_complete_address_ = is_complete_address; 15590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 156a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void set_language_code(const std::string& language_code) { 157a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch language_code_ = language_code; 158a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 160a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Tests if this address exact matches |other|. This method can be used to 161a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // cull duplicates. It wouldn't make sense to have multiple identical street 162a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // addresses with different identifiers or language codes (used for 163a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // formatting). Therefore, |object_id| and |language_code| are ignored. 16490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool EqualsIgnoreID(const Address& other) const; 16590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 166a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // Tests if this address exact matches |other| including |object_id| and 167a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // |language_code|. 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool operator==(const Address& other) const; 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool operator!=(const Address& other) const; 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 1725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Gets the street address on the given line (0-indexed). 1735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::string16 GetStreetAddressLine(size_t line) const; 1745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |country_name_code_| should be an ISO 3166-1-alpha-2 (two letter codes, as 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // used in DNS). For example, "GB". 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string country_name_code_; 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The recipient's name. For example "John Doe". 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 recipient_name_; 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Address lines (arbitrarily many). 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::vector<base::string16> street_address_; 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Locality. This is something of a fuzzy term, but it generally refers to 1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // the city/town portion of an address. 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Examples: US city, IT comune, UK post town. 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 locality_name_; 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Dependent locality is used in Korea and China. 1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Example: a Chinese county under the authority of a prefecture-level city. 1925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::string16 dependent_locality_name_; 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Top-level administrative subdivision of this country. 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Examples: US state, IT region, UK constituent nation, JP prefecture. 1965e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles) // Note: this must be in short form, e.g. TX rather than Texas. 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 administrative_area_name_; 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Despite the name, |postal_code_number_| values are frequently alphanumeric. 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Examples: "94043", "SW1W", "SW1W 9TQ". 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 postal_code_number_; 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Sorting code, e.g. CEDEX in France. 2045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::string16 sorting_code_; 2055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A valid international phone number. If |phone_number_| is a user provided 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // value, it should have been validated using libphonenumber by clients of 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // this class before being set; see http://code.google.com/p/libphonenumber/. 209c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::string16 phone_number_; 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // The parsed phone number. 2124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) i18n::PhoneObject phone_object_; 2134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Externalized Online Wallet id for this address. 2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string object_id_; 2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Server's understanding of this address as complete address or not. 21890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool is_complete_address_; 21990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 220a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // The BCP 47 language code that can be used for formatting this address for 221a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch // display. 222a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch std::string language_code_; 223a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // This class is intentionally copyable. 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_ASSIGN(Address); 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace wallet 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace autofill 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 231868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif // COMPONENTS_AUTOFILL_CONTENT_BROWSER_WALLET_WALLET_ADDRESS_H_ 232