// Copyright 2013 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 COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_ #include #include "base/compiler_specific.h" #include "base/gtest_prod_util.h" #include "base/strings/string16.h" #include "components/autofill/core/browser/form_group.h" namespace autofill { // A form group that stores name information. class NameInfo : public FormGroup { public: NameInfo(); NameInfo(const NameInfo& info); virtual ~NameInfo(); NameInfo& operator=(const NameInfo& info); // Compares |NameInfo| objects for |first_|, |middle_| and |last_| names, // ignoring their case differences. bool EqualsIgnoreCase(const NameInfo& info); // FormGroup: virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; virtual void SetRawInfo(ServerFieldType type, const base::string16& value) OVERRIDE; private: // FormGroup: virtual void GetSupportedTypes( ServerFieldTypeSet* supported_types) const OVERRIDE; // Returns the full name, which is either |full_|, or if |full_| is empty, // is composed of given, middle and family. base::string16 FullName() const; // Returns the middle initial if |middle_| is non-empty. Returns an empty // string otherwise. base::string16 MiddleInitial() const; // Sets |given_|, |middle_|, and |family_| to the tokenized |full|. void SetFullName(const base::string16& full); base::string16 given_; base::string16 middle_; base::string16 family_; base::string16 full_; }; class EmailInfo : public FormGroup { public: EmailInfo(); EmailInfo(const EmailInfo& info); virtual ~EmailInfo(); EmailInfo& operator=(const EmailInfo& info); // FormGroup: virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; virtual void SetRawInfo(ServerFieldType type, const base::string16& value) OVERRIDE; private: // FormGroup: virtual void GetSupportedTypes( ServerFieldTypeSet* supported_types) const OVERRIDE; base::string16 email_; }; class CompanyInfo : public FormGroup { public: CompanyInfo(); CompanyInfo(const CompanyInfo& info); virtual ~CompanyInfo(); CompanyInfo& operator=(const CompanyInfo& info); // FormGroup: virtual base::string16 GetRawInfo(ServerFieldType type) const OVERRIDE; virtual void SetRawInfo(ServerFieldType type, const base::string16& value) OVERRIDE; private: // FormGroup: virtual void GetSupportedTypes( ServerFieldTypeSet* supported_types) const OVERRIDE; base::string16 company_name_; }; } // namespace autofill #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_CONTACT_INFO_H_