1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/webdata/autofill_change.h" 6 7 #include "chrome/browser/autofill/autofill_profile.h" 8 #include "chrome/browser/autofill/credit_card.h" 9 10 AutofillChange::AutofillChange(Type type, const AutofillKey& key) 11 : GenericAutofillChange<AutofillKey>(type, key) { 12 } 13 14 AutofillChange::~AutofillChange() { 15 } 16 17 AutofillProfileChange::AutofillProfileChange( 18 Type type, std::string key, const AutofillProfile* profile) 19 : GenericAutofillChange<std::string>(type, key), 20 profile_(profile) { 21 DCHECK(type == ADD ? (profile && profile->guid() == key) : true); 22 DCHECK(type == UPDATE ? (profile && profile->guid() == key) : true); 23 DCHECK(type == REMOVE ? !profile : true); 24 } 25 26 AutofillProfileChange::~AutofillProfileChange() { 27 } 28 29 bool AutofillProfileChange::operator==( 30 const AutofillProfileChange& change) const { 31 return type() == change.type() && 32 key() == change.key() && 33 (type() != REMOVE) ? *profile() == *change.profile() : true; 34 } 35 36 AutofillCreditCardChange::AutofillCreditCardChange( 37 Type type, std::string key, const CreditCard* credit_card) 38 : GenericAutofillChange<std::string>(type, key), credit_card_(credit_card) { 39 DCHECK(type == ADD ? (credit_card && credit_card->guid() == key) : true); 40 DCHECK(type == UPDATE ? (credit_card && credit_card->guid() == key) : true); 41 DCHECK(type == REMOVE ? !credit_card : true); 42 } 43 44 AutofillCreditCardChange::~AutofillCreditCardChange() { 45 } 46 47 bool AutofillCreditCardChange::operator==( 48 const AutofillCreditCardChange& change) const { 49 return type() == change.type() && 50 key() == change.key() && 51 (type() != REMOVE) ? *credit_card() == *change.credit_card() : true; 52 } 53