| 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 |