status_t BContact::RemoveEquivalentFields(BContactField* field) { if (fInitCheck != B_OK) return fInitCheck; BContactField* ret; for (int i = 0; i < fList.CountItems(); i++) { ret = fList.ItemAt(i); if (ret->IsEqual(field)) fList.RemoveItemAt(i); } return B_OK; }
bool BContact::HasField(BContactField* field) { if (fInitCheck != B_OK) return fInitCheck; int count = fList.CountItems(); BContactField* ret; for (int i = 0; i < count; i++) { ret = fList.ItemAt(i); if (ret->IsEqual(field)) return true; } return B_ERROR; }
status_t BContact::ReplaceField(BContactField* field) { if (fInitCheck != B_OK) return fInitCheck; int count = fList.CountItems(); for (int i = 0; i < count; i++) { BContactField* ret = fList.ItemAt(i); if (ret->IsEqual(field)) { if (fList.ReplaceItem(i, field)) return B_OK; else return B_ERROR; } } return B_ERROR; }