in mailnews/addrbook/src/nsAbLDIFService.cpp [400:676]
void nsAbLDIFService::AddLdifColToDatabase(nsIAbDirectory* aDirectory,
nsIAbCard* newCard,
nsCString colType, nsCString column,
bool bIsList) {
nsString value = NS_ConvertUTF8toUTF16(column);
char firstByte = colType.get()[0];
switch (firstByte) {
case 'b':
if (colType.EqualsLiteral("birthyear"))
newCard->SetPropertyAsAString(kBirthYearProperty, value);
else if (colType.EqualsLiteral("birthmonth"))
newCard->SetPropertyAsAString(kBirthMonthProperty, value);
else if (colType.EqualsLiteral("birthday"))
newCard->SetPropertyAsAString(kBirthDayProperty, value);
break; // 'b'
case 'c':
if (colType.EqualsLiteral("cn") || colType.EqualsLiteral("commonname")) {
newCard->SetDisplayName(value);
} else if (colType.EqualsLiteral("c") ||
colType.EqualsLiteral("countryname")) {
if (mStoreLocAsHome)
newCard->SetPropertyAsAString(kHomeCountryProperty, value);
else
newCard->SetPropertyAsAString(kWorkCountryProperty, value);
}
else if (colType.EqualsLiteral("cellphone"))
newCard->SetPropertyAsAString(kCellularProperty, value);
else if (colType.EqualsLiteral("carphone"))
newCard->SetPropertyAsAString(kCellularProperty, value);
else if (colType.EqualsLiteral("custom1"))
newCard->SetPropertyAsAString(kCustom1Property, value);
else if (colType.EqualsLiteral("custom2"))
newCard->SetPropertyAsAString(kCustom2Property, value);
else if (colType.EqualsLiteral("custom3"))
newCard->SetPropertyAsAString(kCustom3Property, value);
else if (colType.EqualsLiteral("custom4"))
newCard->SetPropertyAsAString(kCustom4Property, value);
else if (colType.EqualsLiteral("company"))
newCard->SetPropertyAsAString(kCompanyProperty, value);
break; // 'c'
case 'd':
if (colType.EqualsLiteral("description"))
newCard->SetPropertyAsAString(kNotesProperty, value);
else if (colType.EqualsLiteral("department"))
newCard->SetPropertyAsAString(kDepartmentProperty, value);
else if (colType.EqualsLiteral("displayname"))
newCard->SetDisplayName(value);
break; // 'd'
case 'f':
if (colType.EqualsLiteral("fax") ||
colType.EqualsLiteral("facsimiletelephonenumber"))
newCard->SetPropertyAsAString(kFaxProperty, value);
break; // 'f'
case 'g':
if (colType.EqualsLiteral("givenname")) newCard->SetFirstName(value);
break; // 'g'
case 'h':
if (colType.EqualsLiteral("homephone"))
newCard->SetPropertyAsAString(kHomePhoneProperty, value);
else if (colType.EqualsLiteral("homestreet"))
newCard->SetPropertyAsAString(kHomeAddressProperty, value);
else if (colType.EqualsLiteral("homeurl"))
newCard->SetPropertyAsAString(kHomeWebPageProperty, value);
break; // 'h'
case 'l':
if (colType.EqualsLiteral("l") || colType.EqualsLiteral("locality")) {
if (mStoreLocAsHome)
newCard->SetPropertyAsAString(kHomeCityProperty, value);
else
newCard->SetPropertyAsAString(kWorkCityProperty, value);
}
// labeledURI contains a URI and, optionally, a label
// This will remove the label and place the URI as the work URL
else if (colType.EqualsLiteral("labeleduri")) {
int32_t index = column.FindChar(' ');
if (index != -1) column.SetLength(index);
newCard->SetPropertyAsAString(kWorkWebPageProperty,
NS_ConvertUTF8toUTF16(column));
}
break; // 'l'
case 'm':
if (colType.EqualsLiteral("mail"))
newCard->SetPrimaryEmail(value);
else if (colType.EqualsLiteral("mobile"))
newCard->SetPropertyAsAString(kCellularProperty, value);
else if (colType.EqualsLiteral("mozilla_aimscreenname"))
newCard->SetPropertyAsAString(kAIMProperty, value);
else if (colType.EqualsLiteral("mozillacustom1"))
newCard->SetPropertyAsAString(kCustom1Property, value);
else if (colType.EqualsLiteral("mozillacustom2"))
newCard->SetPropertyAsAString(kCustom2Property, value);
else if (colType.EqualsLiteral("mozillacustom3"))
newCard->SetPropertyAsAString(kCustom3Property, value);
else if (colType.EqualsLiteral("mozillacustom4"))
newCard->SetPropertyAsAString(kCustom4Property, value);
else if (colType.EqualsLiteral("mozillahomecountryname"))
newCard->SetPropertyAsAString(kHomeCountryProperty, value);
else if (colType.EqualsLiteral("mozillahomelocalityname"))
newCard->SetPropertyAsAString(kHomeCityProperty, value);
else if (colType.EqualsLiteral("mozillahomestate"))
newCard->SetPropertyAsAString(kHomeStateProperty, value);
else if (colType.EqualsLiteral("mozillahomestreet"))
newCard->SetPropertyAsAString(kHomeAddressProperty, value);
else if (colType.EqualsLiteral("mozillahomestreet2"))
newCard->SetPropertyAsAString(kHomeAddress2Property, value);
else if (colType.EqualsLiteral("mozillahomepostalcode"))
newCard->SetPropertyAsAString(kHomeZipCodeProperty, value);
else if (colType.EqualsLiteral("mozillahomeurl"))
newCard->SetPropertyAsAString(kHomeWebPageProperty, value);
else if (colType.EqualsLiteral("mozillanickname"))
newCard->SetPropertyAsAString(kNicknameProperty, value);
else if (colType.EqualsLiteral("mozillasecondemail"))
newCard->SetPropertyAsAString(k2ndEmailProperty, value);
else if (colType.EqualsLiteral("mozillaworkstreet2"))
newCard->SetPropertyAsAString(kWorkAddress2Property, value);
else if (colType.EqualsLiteral("mozillaworkurl"))
newCard->SetPropertyAsAString(kWorkWebPageProperty, value);
break; // 'm'
case 'n':
if (colType.EqualsLiteral("notes"))
newCard->SetPropertyAsAString(kNotesProperty, value);
else if (colType.EqualsLiteral("nscpaimscreenname") ||
colType.EqualsLiteral("nsaimid"))
newCard->SetPropertyAsAString(kAIMProperty, value);
break; // 'n'
case 'o':
if (colType.EqualsLiteral("objectclass"))
break;
else if (colType.EqualsLiteral("ou") || colType.EqualsLiteral("orgunit"))
newCard->SetPropertyAsAString(kDepartmentProperty, value);
else if (colType.EqualsLiteral("o")) // organization
newCard->SetPropertyAsAString(kCompanyProperty, value);
break; // 'o'
case 'p':
if (colType.EqualsLiteral("postalcode")) {
if (mStoreLocAsHome)
newCard->SetPropertyAsAString(kHomeZipCodeProperty, value);
else
newCard->SetPropertyAsAString(kWorkZipCodeProperty, value);
}
else if (colType.EqualsLiteral("postofficebox")) {
nsAutoCString workAddr1, workAddr2;
SplitCRLFAddressField(column, workAddr1, workAddr2);
newCard->SetPropertyAsAString(kWorkAddressProperty,
NS_ConvertUTF8toUTF16(workAddr1));
newCard->SetPropertyAsAString(kWorkAddress2Property,
NS_ConvertUTF8toUTF16(workAddr2));
} else if (colType.EqualsLiteral("pager") ||
colType.EqualsLiteral("pagerphone"))
newCard->SetPropertyAsAString(kPagerProperty, value);
break; // 'p'
case 'r':
if (colType.EqualsLiteral("region")) {
newCard->SetPropertyAsAString(kWorkStateProperty, value);
}
break; // 'r'
case 's':
if (colType.EqualsLiteral("sn") || colType.EqualsLiteral("surname"))
newCard->SetPropertyAsAString(kLastNameProperty, value);
else if (colType.EqualsLiteral("street"))
newCard->SetPropertyAsAString(kWorkAddressProperty, value);
else if (colType.EqualsLiteral("streetaddress")) {
nsAutoCString addr1, addr2;
SplitCRLFAddressField(column, addr1, addr2);
if (mStoreLocAsHome) {
newCard->SetPropertyAsAString(kHomeAddressProperty,
NS_ConvertUTF8toUTF16(addr1));
newCard->SetPropertyAsAString(kHomeAddress2Property,
NS_ConvertUTF8toUTF16(addr2));
} else {
newCard->SetPropertyAsAString(kWorkAddressProperty,
NS_ConvertUTF8toUTF16(addr1));
newCard->SetPropertyAsAString(kWorkAddress2Property,
NS_ConvertUTF8toUTF16(addr2));
}
} else if (colType.EqualsLiteral("st")) {
if (mStoreLocAsHome)
newCard->SetPropertyAsAString(kHomeStateProperty, value);
else
newCard->SetPropertyAsAString(kWorkStateProperty, value);
}
break; // 's'
case 't':
if (colType.EqualsLiteral("title"))
newCard->SetPropertyAsAString(kJobTitleProperty, value);
else if (colType.EqualsLiteral("telephonenumber")) {
newCard->SetPropertyAsAString(kWorkPhoneProperty, value);
}
break; // 't'
case 'w':
if (colType.EqualsLiteral("workurl"))
newCard->SetPropertyAsAString(kWorkWebPageProperty, value);
break; // 'w'
case 'x':
if (colType.EqualsLiteral("xmozillanickname")) {
newCard->SetPropertyAsAString(kNicknameProperty, value);
}
break; // 'x'
case 'z':
if (colType.EqualsLiteral("zip")) // alias for postalcode
{
if (mStoreLocAsHome)
newCard->SetPropertyAsAString(kHomeZipCodeProperty, value);
else
newCard->SetPropertyAsAString(kWorkZipCodeProperty, value);
}
break; // 'z'
default:
break; // default
}
}