Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1034)

Side by Side Diff: chrome/browser/autofill/wallet/instrument.h

Issue 12434004: Move remaining Autofill code to //components/autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix long lines Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_AUTOFILL_WALLET_INSTRUMENT_H_
6 #define CHROME_BROWSER_AUTOFILL_WALLET_INSTRUMENT_H_
7
8 #include <string>
9 #include "base/basictypes.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/string16.h"
12
13 namespace base {
14 class DictionaryValue;
15 }
16
17 namespace autofill {
18 namespace wallet {
19
20 class Address;
21
22 // This class contains all the data necessary to save a new instrument to a
23 // user's Google Wallet using WalletClient::SaveInstrument or
24 // WalletClient::SaveInstrumentAndAddress.
25 class Instrument {
26 public:
27 enum FormOfPayment {
28 UNKNOWN,
29 VISA,
30 MASTER_CARD,
31 AMEX,
32 DISCOVER,
33 JCB,
34 };
35
36 Instrument(const string16& primary_account_number,
37 const string16& card_verification_number,
38 int expiration_month,
39 int expiration_year,
40 FormOfPayment form_of_payment,
41 scoped_ptr<Address> address);
42 Instrument(const Instrument& instrument);
43 ~Instrument();
44
45 scoped_ptr<base::DictionaryValue> ToDictionary() const;
46
47 // Users of this class should call IsValid to check that the inputs provided
48 // in the constructor were valid for use with Google Wallet.
49 bool IsValid() const;
50
51 const string16& primary_account_number() const {
52 return primary_account_number_;
53 }
54 const string16& card_verification_number() const {
55 return card_verification_number_;
56 }
57 int expiration_month() const { return expiration_month_; }
58 int expiration_year() const { return expiration_year_; }
59 const Address& address() const { return *address_; }
60 FormOfPayment form_of_payment() const { return form_of_payment_; }
61 const string16& last_four_digits() { return last_four_digits_; }
62
63 private:
64 void Init();
65
66 // |primary_account_number_| is expected to be \d{12-19}.
67 string16 primary_account_number_;
68
69 // |card_verification_number_| is expected to be \d{3-4}.
70 string16 card_verification_number_;
71
72 // |expiration month_| should be 1-12.
73 int expiration_month_;
74
75 // |expiration_year_| should be a 4-digit year.
76 int expiration_year_;
77
78 // The payment network of the instrument, e.g. Visa.
79 FormOfPayment form_of_payment_;
80
81 // The billing address of the instrument.
82 scoped_ptr<Address> address_;
83
84 // The last four digits of |primary_account_number_|.
85 string16 last_four_digits_;
86
87 DISALLOW_ASSIGN(Instrument);
88 };
89
90 } // namespace wallet
91 } // namespace autofill
92
93 #endif // CHROME_BROWSER_AUTOFILL_WALLET_INSTRUMENT_H_
OLDNEW
« no previous file with comments | « chrome/browser/autofill/wallet/full_wallet_unittest.cc ('k') | chrome/browser/autofill/wallet/instrument.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698