OLD | NEW |
| (Empty) |
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/autofill/autofill_type.h" | |
6 | |
7 #include <ostream> | |
8 | |
9 #include "base/logging.h" | |
10 | |
11 AutofillType::AutofillType(AutofillFieldType field_type) { | |
12 if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) || | |
13 (field_type >= 15 && field_type <= 19) || | |
14 (field_type >= 25 && field_type <= 29) || | |
15 (field_type >= 44 && field_type <= 50)) | |
16 field_type_ = UNKNOWN_TYPE; | |
17 else | |
18 field_type_ = field_type; | |
19 } | |
20 | |
21 AutofillType::AutofillType(const AutofillType& autofill_type) { | |
22 *this = autofill_type; | |
23 } | |
24 | |
25 AutofillType& AutofillType::operator=(const AutofillType& autofill_type) { | |
26 if (this != &autofill_type) | |
27 this->field_type_ = autofill_type.field_type_; | |
28 return *this; | |
29 } | |
30 | |
31 AutofillFieldType AutofillType::field_type() const { | |
32 return field_type_; | |
33 } | |
34 | |
35 FieldTypeGroup AutofillType::group() const { | |
36 switch (field_type_) { | |
37 case NAME_FIRST: | |
38 case NAME_MIDDLE: | |
39 case NAME_LAST: | |
40 case NAME_MIDDLE_INITIAL: | |
41 case NAME_FULL: | |
42 case NAME_SUFFIX: | |
43 return NAME; | |
44 | |
45 case EMAIL_ADDRESS: | |
46 return EMAIL; | |
47 | |
48 case PHONE_HOME_NUMBER: | |
49 case PHONE_HOME_CITY_CODE: | |
50 case PHONE_HOME_COUNTRY_CODE: | |
51 case PHONE_HOME_CITY_AND_NUMBER: | |
52 case PHONE_HOME_WHOLE_NUMBER: | |
53 return PHONE; | |
54 | |
55 case ADDRESS_HOME_LINE1: | |
56 case ADDRESS_HOME_LINE2: | |
57 case ADDRESS_HOME_APT_NUM: | |
58 case ADDRESS_HOME_CITY: | |
59 case ADDRESS_HOME_STATE: | |
60 case ADDRESS_HOME_ZIP: | |
61 case ADDRESS_HOME_COUNTRY: | |
62 return ADDRESS_HOME; | |
63 | |
64 case ADDRESS_BILLING_LINE1: | |
65 case ADDRESS_BILLING_LINE2: | |
66 case ADDRESS_BILLING_APT_NUM: | |
67 case ADDRESS_BILLING_CITY: | |
68 case ADDRESS_BILLING_STATE: | |
69 case ADDRESS_BILLING_ZIP: | |
70 case ADDRESS_BILLING_COUNTRY: | |
71 return ADDRESS_BILLING; | |
72 | |
73 case CREDIT_CARD_NAME: | |
74 case CREDIT_CARD_NUMBER: | |
75 case CREDIT_CARD_EXP_MONTH: | |
76 case CREDIT_CARD_EXP_2_DIGIT_YEAR: | |
77 case CREDIT_CARD_EXP_4_DIGIT_YEAR: | |
78 case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: | |
79 case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: | |
80 case CREDIT_CARD_TYPE: | |
81 case CREDIT_CARD_VERIFICATION_CODE: | |
82 return CREDIT_CARD; | |
83 | |
84 case COMPANY_NAME: | |
85 return COMPANY; | |
86 | |
87 default: | |
88 return NO_GROUP; | |
89 } | |
90 } | |
91 | |
92 // static | |
93 AutofillFieldType AutofillType::GetEquivalentFieldType( | |
94 AutofillFieldType field_type) { | |
95 // When billing information is requested from the profile we map to the | |
96 // home address equivalents. | |
97 switch (field_type) { | |
98 case ADDRESS_BILLING_LINE1: | |
99 return ADDRESS_HOME_LINE1; | |
100 | |
101 case ADDRESS_BILLING_LINE2: | |
102 return ADDRESS_HOME_LINE2; | |
103 | |
104 case ADDRESS_BILLING_APT_NUM: | |
105 return ADDRESS_HOME_APT_NUM; | |
106 | |
107 case ADDRESS_BILLING_CITY: | |
108 return ADDRESS_HOME_CITY; | |
109 | |
110 case ADDRESS_BILLING_STATE: | |
111 return ADDRESS_HOME_STATE; | |
112 | |
113 case ADDRESS_BILLING_ZIP: | |
114 return ADDRESS_HOME_ZIP; | |
115 | |
116 case ADDRESS_BILLING_COUNTRY: | |
117 return ADDRESS_HOME_COUNTRY; | |
118 | |
119 default: | |
120 return field_type; | |
121 } | |
122 } | |
123 | |
124 // static | |
125 std::string AutofillType::FieldTypeToString(AutofillFieldType type) { | |
126 switch (type) { | |
127 case NO_SERVER_DATA: | |
128 return "NO_SERVER_DATA"; | |
129 case UNKNOWN_TYPE: | |
130 return "UNKNOWN_TYPE"; | |
131 case EMPTY_TYPE: | |
132 return "EMPTY_TYPE"; | |
133 case NAME_FIRST: | |
134 return "NAME_FIRST"; | |
135 case NAME_MIDDLE: | |
136 return "NAME_MIDDLE"; | |
137 case NAME_LAST: | |
138 return "NAME_LAST"; | |
139 case NAME_MIDDLE_INITIAL: | |
140 return "NAME_MIDDLE_INITIAL"; | |
141 case NAME_FULL: | |
142 return "NAME_FULL"; | |
143 case NAME_SUFFIX: | |
144 return "NAME_SUFFIX"; | |
145 case EMAIL_ADDRESS: | |
146 return "EMAIL_ADDRESS"; | |
147 case PHONE_HOME_NUMBER: | |
148 return "PHONE_HOME_NUMBER"; | |
149 case PHONE_HOME_CITY_CODE: | |
150 return "PHONE_HOME_CITY_CODE"; | |
151 case PHONE_HOME_COUNTRY_CODE: | |
152 return "PHONE_HOME_COUNTRY_CODE"; | |
153 case PHONE_HOME_CITY_AND_NUMBER: | |
154 return "PHONE_HOME_CITY_AND_NUMBER"; | |
155 case PHONE_HOME_WHOLE_NUMBER: | |
156 return "PHONE_HOME_WHOLE_NUMBER"; | |
157 case ADDRESS_HOME_LINE1: | |
158 return "ADDRESS_HOME_LINE1"; | |
159 case ADDRESS_HOME_LINE2: | |
160 return "ADDRESS_HOME_LINE2"; | |
161 case ADDRESS_HOME_APT_NUM: | |
162 return "ADDRESS_HOME_APT_NUM"; | |
163 case ADDRESS_HOME_CITY: | |
164 return "ADDRESS_HOME_CITY"; | |
165 case ADDRESS_HOME_STATE: | |
166 return "ADDRESS_HOME_STATE"; | |
167 case ADDRESS_HOME_ZIP: | |
168 return "ADDRESS_HOME_ZIP"; | |
169 case ADDRESS_HOME_COUNTRY: | |
170 return "ADDRESS_HOME_COUNTRY"; | |
171 case ADDRESS_BILLING_LINE1: | |
172 return "ADDRESS_BILLING_LINE1"; | |
173 case ADDRESS_BILLING_LINE2: | |
174 return "ADDRESS_BILLING_LINE2"; | |
175 case ADDRESS_BILLING_APT_NUM: | |
176 return "ADDRESS_BILLING_APT_NUM"; | |
177 case ADDRESS_BILLING_CITY: | |
178 return "ADDRESS_BILLING_CITY"; | |
179 case ADDRESS_BILLING_STATE: | |
180 return "ADDRESS_BILLING_STATE"; | |
181 case ADDRESS_BILLING_ZIP: | |
182 return "ADDRESS_BILLING_ZIP"; | |
183 case ADDRESS_BILLING_COUNTRY: | |
184 return "ADDRESS_BILLING_COUNTRY"; | |
185 case CREDIT_CARD_NAME: | |
186 return "CREDIT_CARD_NAME"; | |
187 case CREDIT_CARD_NUMBER: | |
188 return "CREDIT_CARD_NUMBER"; | |
189 case CREDIT_CARD_EXP_MONTH: | |
190 return "CREDIT_CARD_EXP_MONTH"; | |
191 case CREDIT_CARD_EXP_2_DIGIT_YEAR: | |
192 return "CREDIT_CARD_EXP_2_DIGIT_YEAR"; | |
193 case CREDIT_CARD_EXP_4_DIGIT_YEAR: | |
194 return "CREDIT_CARD_EXP_4_DIGIT_YEAR"; | |
195 case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: | |
196 return "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR"; | |
197 case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: | |
198 return "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR"; | |
199 case CREDIT_CARD_TYPE: | |
200 return "CREDIT_CARD_TYPE"; | |
201 case CREDIT_CARD_VERIFICATION_CODE: | |
202 return "CREDIT_CARD_VERIFICATION_CODE"; | |
203 case COMPANY_NAME: | |
204 return "COMPANY_NAME"; | |
205 default: | |
206 NOTREACHED() << "Invalid AutofillFieldType value."; | |
207 } | |
208 return std::string(); | |
209 } | |
210 | |
211 // static | |
212 AutofillFieldType AutofillType::StringToFieldType(const std::string& str) { | |
213 if (str == "NO_SERVER_DATA") | |
214 return NO_SERVER_DATA; | |
215 if (str == "UNKNOWN_TYPE") | |
216 return UNKNOWN_TYPE; | |
217 if (str == "EMPTY_TYPE") | |
218 return EMPTY_TYPE; | |
219 if (str == "NAME_FIRST") | |
220 return NAME_FIRST; | |
221 if (str == "NAME_MIDDLE") | |
222 return NAME_MIDDLE; | |
223 if (str == "NAME_LAST") | |
224 return NAME_LAST; | |
225 if (str == "NAME_MIDDLE_INITIAL") | |
226 return NAME_MIDDLE_INITIAL; | |
227 if (str == "NAME_FULL") | |
228 return NAME_FULL; | |
229 if (str == "NAME_SUFFIX") | |
230 return NAME_SUFFIX; | |
231 if (str == "EMAIL_ADDRESS") | |
232 return EMAIL_ADDRESS; | |
233 if (str == "PHONE_HOME_NUMBER") | |
234 return PHONE_HOME_NUMBER; | |
235 if (str == "PHONE_HOME_CITY_CODE") | |
236 return PHONE_HOME_CITY_CODE; | |
237 if (str == "PHONE_HOME_COUNTRY_CODE") | |
238 return PHONE_HOME_COUNTRY_CODE; | |
239 if (str == "PHONE_HOME_CITY_AND_NUMBER") | |
240 return PHONE_HOME_CITY_AND_NUMBER; | |
241 if (str == "PHONE_HOME_WHOLE_NUMBER") | |
242 return PHONE_HOME_WHOLE_NUMBER; | |
243 if (str == "ADDRESS_HOME_LINE1") | |
244 return ADDRESS_HOME_LINE1; | |
245 if (str == "ADDRESS_HOME_LINE2") | |
246 return ADDRESS_HOME_LINE2; | |
247 if (str == "ADDRESS_HOME_APT_NUM") | |
248 return ADDRESS_HOME_APT_NUM; | |
249 if (str == "ADDRESS_HOME_CITY") | |
250 return ADDRESS_HOME_CITY; | |
251 if (str == "ADDRESS_HOME_STATE") | |
252 return ADDRESS_HOME_STATE; | |
253 if (str == "ADDRESS_HOME_ZIP") | |
254 return ADDRESS_HOME_ZIP; | |
255 if (str == "ADDRESS_HOME_COUNTRY") | |
256 return ADDRESS_HOME_COUNTRY; | |
257 if (str == "ADDRESS_BILLING_LINE1") | |
258 return ADDRESS_BILLING_LINE1; | |
259 if (str == "ADDRESS_BILLING_LINE2") | |
260 return ADDRESS_BILLING_LINE2; | |
261 if (str == "ADDRESS_BILLING_APT_NUM") | |
262 return ADDRESS_BILLING_APT_NUM; | |
263 if (str == "ADDRESS_BILLING_CITY") | |
264 return ADDRESS_BILLING_CITY; | |
265 if (str == "ADDRESS_BILLING_STATE") | |
266 return ADDRESS_BILLING_STATE; | |
267 if (str == "ADDRESS_BILLING_ZIP") | |
268 return ADDRESS_BILLING_ZIP; | |
269 if (str == "ADDRESS_BILLING_COUNTRY") | |
270 return ADDRESS_BILLING_COUNTRY; | |
271 if (str == "CREDIT_CARD_NAME") | |
272 return CREDIT_CARD_NAME; | |
273 if (str == "CREDIT_CARD_NUMBER") | |
274 return CREDIT_CARD_NUMBER; | |
275 if (str == "CREDIT_CARD_EXP_MONTH") | |
276 return CREDIT_CARD_EXP_MONTH; | |
277 if (str == "CREDIT_CARD_EXP_2_DIGIT_YEAR") | |
278 return CREDIT_CARD_EXP_2_DIGIT_YEAR; | |
279 if (str == "CREDIT_CARD_EXP_4_DIGIT_YEAR") | |
280 return CREDIT_CARD_EXP_4_DIGIT_YEAR; | |
281 if (str == "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR") | |
282 return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR; | |
283 if (str == "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR") | |
284 return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; | |
285 if (str == "CREDIT_CARD_TYPE") | |
286 return CREDIT_CARD_TYPE; | |
287 if (str == "CREDIT_CARD_VERIFICATION_CODE") | |
288 return CREDIT_CARD_VERIFICATION_CODE; | |
289 if (str == "COMPANY_NAME") | |
290 return COMPANY_NAME; | |
291 | |
292 NOTREACHED() << "Unknown AutofillFieldType " << str; | |
293 return UNKNOWN_TYPE; | |
294 } | |
OLD | NEW |