| // Copyright (c) 2011 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. |
| |
| #include "chrome/browser/webdata/autofill_change.h" |
| |
| #include "chrome/browser/autofill/autofill_profile.h" |
| #include "chrome/browser/autofill/credit_card.h" |
| |
| AutofillChange::AutofillChange(Type type, const AutofillKey& key) |
| : GenericAutofillChange<AutofillKey>(type, key) { |
| } |
| |
| AutofillChange::~AutofillChange() { |
| } |
| |
| AutofillProfileChange::AutofillProfileChange( |
| Type type, std::string key, const AutofillProfile* profile) |
| : GenericAutofillChange<std::string>(type, key), |
| profile_(profile) { |
| DCHECK(type == ADD ? (profile && profile->guid() == key) : true); |
| DCHECK(type == UPDATE ? (profile && profile->guid() == key) : true); |
| DCHECK(type == REMOVE ? !profile : true); |
| } |
| |
| AutofillProfileChange::~AutofillProfileChange() { |
| } |
| |
| bool AutofillProfileChange::operator==( |
| const AutofillProfileChange& change) const { |
| return type() == change.type() && |
| key() == change.key() && |
| (type() != REMOVE) ? *profile() == *change.profile() : true; |
| } |
| |
| AutofillCreditCardChange::AutofillCreditCardChange( |
| Type type, std::string key, const CreditCard* credit_card) |
| : GenericAutofillChange<std::string>(type, key), credit_card_(credit_card) { |
| DCHECK(type == ADD ? (credit_card && credit_card->guid() == key) : true); |
| DCHECK(type == UPDATE ? (credit_card && credit_card->guid() == key) : true); |
| DCHECK(type == REMOVE ? !credit_card : true); |
| } |
| |
| AutofillCreditCardChange::~AutofillCreditCardChange() { |
| } |
| |
| bool AutofillCreditCardChange::operator==( |
| const AutofillCreditCardChange& change) const { |
| return type() == change.type() && |
| key() == change.key() && |
| (type() != REMOVE) ? *credit_card() == *change.credit_card() : true; |
| } |