contact_info.h revision 3240926e260ce088908e02ac07a6cf7b0c0cbf44
125e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar// Copyright 2013 The Chromium Authors. All rights reserved. 225e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar// Use of this source code is governed by a BSD-style license that can be 325e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar// found in the LICENSE file. 425e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar 525e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_ 625e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar#define COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_ 725e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar 825e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar#include <vector> 9e18e0c58dcd740c64e962fefde44249d685d0568Chris Lattner 10e18e0c58dcd740c64e962fefde44249d685d0568Chris Lattner#include "base/compiler_specific.h" 11e18e0c58dcd740c64e962fefde44249d685d0568Chris Lattner#include "base/gtest_prod_util.h" 12e18e0c58dcd740c64e962fefde44249d685d0568Chris Lattner#include "base/strings/string16.h" 1325e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar#include "components/autofill/core/browser/form_group.h" 1425e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar 1525e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbarnamespace autofill { 1625e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar 17255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruth// A form group that stores name information. 18255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruthclass NameInfo : public FormGroup { 1977afbdce53aa740777486b0cc4e9df151ae65468Jack Carter public: 20a5ad93a10a5435f21090b09edb6b3a7e44967648Chris Lattner NameInfo(); 2189b9372605db2ce3b0085c84089e389f7bc1fbddRafael Espindola NameInfo(const NameInfo& info); 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines virtual ~NameInfo(); 230855bc5b973320052c87bdcc2fa17b9711edc3deCharles Davis 24255f89faee13dc491cb64fbeae3c763e7e2ea4e6Chandler Carruth NameInfo& operator=(const NameInfo& info); 25cddd236e8a5acb80e9a0e79dc63f6cfaa8205b86Daniel Dunbar 2684a2926fb7ab388d688a133b0b375a26e669fd55Daniel Dunbar // FormGroup: 2725e0d8f755736b0a17400adbdd367aee89fbecfcDaniel Dunbar virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; 28baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling virtual void SetRawInfo(ServerFieldType type, 29baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling const base::string16& value) OVERRIDE; 30baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling 31baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling private: 32baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling // FormGroup: 33baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling virtual void GetSupportedTypes( 34baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling ServerFieldTypeSet* supported_types) const OVERRIDE; 35320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 36baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling // Returns the full name, which can include up to the first, middle, and last 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines // name. 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines base::string16 FullName() const; 39baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling 40baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling // Returns the middle initial if |middle_| is non-empty. Returns an empty 41baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling // string otherwise. 42baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling base::string16 MiddleInitial() const; 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 44baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling const base::string16& first() const { return first_; } 45baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling const base::string16& middle() const { return middle_; } 46baaefaf828beb3527a3554af99505822fd4dfabfBill Wendling const base::string16& last() const { return last_; } 47320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 48320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola // Sets |first_|, |middle_|, and |last_| to the tokenized |full|. 49320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola // It is tokenized on a space only. 50320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola void SetFullName(const base::string16& full); 51320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 52320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola base::string16 first_; 53320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola base::string16 middle_; 54320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola base::string16 last_; 55320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola}; 56320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 57320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindolaclass EmailInfo : public FormGroup { 58320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola public: 59320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola EmailInfo(); 60320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola EmailInfo(const EmailInfo& info); 61320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual ~EmailInfo(); 62320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 63320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola EmailInfo& operator=(const EmailInfo& info); 64320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 65320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola // FormGroup: 66320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; 67320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual void SetRawInfo(ServerFieldType type, 68320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola const base::string16& value) OVERRIDE; 69320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 70320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola private: 71320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola // FormGroup: 72320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual void GetSupportedTypes( 7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ServerFieldTypeSet* supported_types) const OVERRIDE; 74320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 75320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola base::string16 email_; 7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines}; 77320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesclass CompanyInfo : public FormGroup { 7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines public: 8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines CompanyInfo(); 8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines CompanyInfo(const CompanyInfo& info); 8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines virtual ~CompanyInfo(); 8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines CompanyInfo& operator=(const CompanyInfo& info); 8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines // FormGroup: 87320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; 88320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola virtual void SetRawInfo(ServerFieldType type, 89320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola const base::string16& value) OVERRIDE; 90320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola 91320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola private: 92320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola // FormGroup: 9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines virtual void GetSupportedTypes( 9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ServerFieldTypeSet* supported_types) const OVERRIDE; 9536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 9636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines base::string16 company_name_; 9736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines}; 9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines} // namespace autofill 10036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines#endif // COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_ 102320296a4cfe414ce59f406b8a5ce15272f563103Rafael Espindola