Index: chrome/browser/autofill/wallet/wallet_address.h |
diff --git a/chrome/browser/autofill/wallet/wallet_address.h b/chrome/browser/autofill/wallet/wallet_address.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4c34afe75348e5f033980b5cb36747ef1c7f4ebd |
--- /dev/null |
+++ b/chrome/browser/autofill/wallet/wallet_address.h |
@@ -0,0 +1,110 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_AUTOFILL_WALLET_WALLET_ADDRESS_H_ |
+#define CHROME_BROWSER_AUTOFILL_WALLET_WALLET_ADDRESS_H_ |
+ |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/scoped_ptr.h" |
+ |
+namespace base { |
+class DictionaryValue; |
+} |
+ |
+namespace wallet { |
+ |
+// TODO(ahutter): This address is a lot like chrome/browser/autofill/address.h. |
+// There should be a super class that both extend from to clean up duplicated |
+// code. See http://crbug.com/164463. |
+ |
+// Address contains various address fields that have been populated from the |
+// user's Online Wallet. |
+class Address { |
+ public: |
+ Address(); |
+ // TODO(ahutter): Use additional fields (descriptive_name, is_post_box, |
+ // is_minimal_address, is_valid, is_default) when SaveToWallet is implemented. |
+ // See http://crbug.com/164284. |
+ Address(const std::string& country_name_code, |
+ const std::string& recipient_name, |
+ const std::string& address_line_1, |
+ const std::string& address_line_2, |
+ const std::string& locality_name, |
+ const std::string& administrative_area_name, |
+ const std::string& postal_code_number, |
+ const std::string& phone_number, |
+ const std::string& object_id); |
+ ~Address(); |
+ const std::string& country_name_code() const { return country_name_code_; } |
+ const std::string& recipient_name() const { return recipient_name_; } |
+ const std::string& address_line_1() const { return address_line_1_; } |
+ const std::string& address_line_2() const { return address_line_2_; } |
+ const std::string& locality_name() const { return locality_name_; } |
+ const std::string& admin_area_name() const { |
+ return administrative_area_name_; |
+ } |
+ const std::string& postal_code_number() const { return postal_code_number_; } |
+ const std::string& phone_number() const { return phone_number_; } |
+ const std::string& object_id() const { return object_id_; } |
+ |
+ void set_country_name_code(const std::string& country_name_code) { |
+ country_name_code_ = country_name_code; |
+ } |
+ void set_recipient_name(const std::string& recipient_name) { |
+ recipient_name_ = recipient_name; |
+ } |
+ void set_address_line_1(const std::string& address_line_1) { |
+ address_line_1_ = address_line_1; |
+ } |
+ void set_address_line_2(const std::string& address_line_2) { |
+ address_line_2_ = address_line_2; |
+ } |
+ void set_locality_name(const std::string& locality_name) { |
+ locality_name_ = locality_name; |
+ } |
+ void set_admin_area_name(const std::string& administrative_area_name) { |
+ administrative_area_name_ = administrative_area_name; |
+ } |
+ void set_postal_code_number(const std::string& postal_code_number) { |
+ postal_code_number_ = postal_code_number; |
+ } |
+ void set_phone_number(const std::string& phone_number) { |
+ phone_number_ = phone_number; |
+ } |
+ void set_object_id(const std::string& object_id) { |
+ object_id_ = object_id; |
+ } |
+ |
+ // Returns an empty scoped_ptr if input is invalid or a valid address that is |
+ // selectable for Google Wallet use. |
+ static scoped_ptr<Address> |
+ CreateAddressWithID(const base::DictionaryValue& dictionary); |
+ |
+ // Returns an empty scoped_ptr if input in invalid or a valid address that |
+ // can only be used for displaying to the user. |
+ static scoped_ptr<Address> |
+ CreateDisplayAddress(const base::DictionaryValue& dictionary); |
+ |
+ bool operator==(const Address& other) const; |
+ bool operator!=(const Address& other) const; |
+ |
+ private: |
+ std::string country_name_code_; |
+ std::string recipient_name_; |
+ std::string address_line_1_; |
+ std::string address_line_2_; |
+ std::string locality_name_; |
+ std::string administrative_area_name_; |
+ std::string postal_code_number_; |
+ std::string phone_number_; |
+ std::string object_id_; |
+ DISALLOW_COPY_AND_ASSIGN(Address); |
+}; |
+ |
+} // namespace wallet |
+ |
+#endif // CHROME_BROWSER_AUTOFILL_WALLET_WALLET_ADDRESS_H_ |
+ |