2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 * @author Kisub Song (kisubs.song@samsung.com)
22 * ## - Change name to IContact
25 #include "ContactFactory.h"
32 IContact::IContact() :
35 m_lastUpdatedIsSet(false),
37 m_accountIsSet(false),
38 m_photoURIIsSet(false),
39 m_birthdayIsSet(false),
40 m_organizationIsSet(false),
41 m_ringtoneURIIsSet(false)
43 m_name = ContactNamePtr(new ContactName());
44 m_account = ContactAccountPtr(new ContactAccount());
45 m_addresses = ContactAddressArrayPtr(new ContactAddressArray());
46 m_phoneNumbers = ContactPhoneNumberArrayPtr(new ContactPhoneNumberArray());
47 m_emails = ContactEmailAddressArrayPtr(new ContactEmailAddressArray());
49 m_anniversaries = ContactAnniversaryArrayPtr(new ContactAnniversaryArray());
50 m_organization = ContactOrganizationPtr(new ContactOrganization());
51 m_notes = StringArrayPtr(new StringArray());
52 m_urls = ContactWebSiteArrayPtr(new ContactWebSiteArray());
53 m_categories = StringArrayPtr(new StringArray());
56 IContact::IContact(const std::string &vObjectStr, const std::string &format) :
59 m_lastUpdatedIsSet(false),
61 m_accountIsSet(false),
62 m_photoURIIsSet(false),
63 m_birthdayIsSet(false),
64 m_organizationIsSet(false),
65 m_ringtoneURIIsSet(false)
67 m_name = ContactNamePtr(new ContactName());
68 m_account = ContactAccountPtr(new ContactAccount());
69 m_addresses = ContactAddressArrayPtr(new ContactAddressArray());
70 m_phoneNumbers = ContactPhoneNumberArrayPtr(new ContactPhoneNumberArray());
71 m_emails = ContactEmailAddressArrayPtr(new ContactEmailAddressArray());
73 m_anniversaries = ContactAnniversaryArrayPtr(new ContactAnniversaryArray());
74 m_organization = ContactOrganizationPtr(new ContactOrganization());
75 m_notes = StringArrayPtr(new StringArray());
76 m_urls = ContactWebSiteArrayPtr(new ContactWebSiteArray());
77 m_categories = StringArrayPtr(new StringArray());
84 std::string IContact::getId() const
89 void IContact::setId(const std::string value)
95 bool IContact::getIdIsSet() const
100 void IContact::setId(const int value)
102 std::stringstream oss;
108 std::tm IContact::getLastUpdated() const
110 return m_lastUpdated;
113 void IContact::setLastUpdated(const std::tm &value)
115 m_lastUpdated = value;
116 m_lastUpdatedIsSet = true;
119 bool IContact::getLastUpdatedIsSet() const
121 return m_lastUpdatedIsSet;
124 ContactNamePtr IContact::getName() const
129 void IContact::setName(const ContactNamePtr &value)
135 bool IContact::getNameIsSet() const
140 ContactAccountPtr IContact::getAccount() const
145 void IContact::setAccount(const ContactAccountPtr &value)
148 m_accountIsSet = true;
151 bool IContact::getAccountIsSet() const
153 return m_accountIsSet;
156 ContactAddressArrayPtr IContact::getAddresses() const
161 void IContact::setAddresses(const ContactAddressArrayPtr &value)
166 void IContact::addAddress(const ContactAddressPtr &value)
168 m_addresses->push_back(value);
171 int IContact::getAddressesNum() const
173 return m_addresses->size();
176 std::string IContact::getPhotoURI() const
181 void IContact::setPhotoURI(const std::string &value)
184 m_photoURIIsSet = true;
187 bool IContact::getPhotoURIIsSet() const
189 return m_photoURIIsSet;
192 ContactPhoneNumberArrayPtr IContact::getPhoneNumbers() const
194 return m_phoneNumbers;
197 void IContact::setPhoneNumbers(const ContactPhoneNumberArrayPtr &value)
199 m_phoneNumbers = value;
202 void IContact::addPhoneNumber(const ContactPhoneNumberPtr &value)
204 m_phoneNumbers->push_back(value);
207 int IContact::getPhoneNumbersNum() const
209 return m_phoneNumbers->size();
212 ContactEmailAddressArrayPtr IContact::getEmails() const
217 void IContact::addEmail(const ContactEmailAddressPtr& value)
219 m_emails->push_back(value);
222 void IContact::setEmails(const ContactEmailAddressArrayPtr &value)
227 int IContact::getEmailsNum() const
229 return m_emails->size();
232 std::tm IContact::getBirthday() const
237 void IContact::setBirthday(const std::tm &value)
240 m_birthdayIsSet = true;
243 bool IContact::getBirthdayIsSet() const
245 return m_birthdayIsSet;
248 ContactAnniversaryArrayPtr IContact::getAnniversaries() const
250 return m_anniversaries;
253 void IContact::setAnniversaries(const ContactAnniversaryArrayPtr &value)
255 m_anniversaries = value;
258 void IContact::addAnniversary(const ContactAnniversaryPtr &value)
260 m_anniversaries->push_back(value);
263 int IContact::getAnniversariesNum() const
265 return m_anniversaries->size();
268 ContactOrganizationPtr IContact::getOrganization() const
270 return m_organization;
273 void IContact::setOrganization(const ContactOrganizationPtr &value)
275 m_organization = value;
276 m_organizationIsSet = true;
279 bool IContact::getOrganizationIsSet() const
281 return m_organizationIsSet;
284 StringArrayPtr IContact::getNotes() const
289 void IContact::setNotes(const StringArrayPtr &value)
294 void IContact::addNote(const std::string &value)
296 m_notes->push_back(value);
299 int IContact::getNotesNum() const
301 return m_notes->size();
304 ContactWebSiteArrayPtr IContact::getUrls() const
309 void IContact::setUrls(const ContactWebSiteArrayPtr &value)
314 void IContact::addUrl(const ContactWebSitePtr &value)
316 m_urls->push_back(value);
319 int IContact::getUrlsNum() const
321 return m_urls->size();
324 bool IContact::getIsFavorite() const
329 void IContact::setIsFavorite(const bool &value)
331 m_isFavorite = value;
334 std::string IContact::getRingtoneURI() const
336 return m_ringtoneURI;
339 bool IContact::getRingtoneURIIsSet() const
341 return m_ringtoneURIIsSet;
344 void IContact::setRingtoneURI(const std::string &value)
346 m_ringtoneURI = value;
347 m_ringtoneURIIsSet = true;
350 StringArrayPtr IContact::getCategories() const
355 void IContact::setCategories(const StringArrayPtr &value)
357 m_categories = value;
360 void IContact::addCategory(const std::string &value)
362 m_categories->push_back(value);
365 int IContact::getCategoriesNum() const
367 return m_categories->size();
370 void IContact::copy(const ContactPtr &contact)
372 m_id = contact->m_id;
373 m_lastUpdated = contact->m_lastUpdated;
375 m_name = contact->m_name->clone();
376 m_account = contact->m_account->clone();
377 m_addresses = ContactAddressArrayPtr(new ContactAddressArray());
378 ContactAddressArray::iterator contactAddressIter;
379 for(contactAddressIter = contact->m_addresses->begin(); contactAddressIter != contact->m_addresses->end(); contactAddressIter++)
380 m_addresses->push_back((*contactAddressIter)->clone());
382 m_photoURI = contact->m_photoURI;
383 m_phoneNumbers = ContactPhoneNumberArrayPtr(new ContactPhoneNumberArray());
384 ContactPhoneNumberArray::iterator contactPhoneNumberIter;
385 for(contactPhoneNumberIter = contact->m_phoneNumbers->begin(); contactPhoneNumberIter != contact->m_phoneNumbers->end(); contactPhoneNumberIter++)
386 m_phoneNumbers->push_back((*contactPhoneNumberIter)->clone());
388 m_emails = ContactEmailAddressArrayPtr(new ContactEmailAddressArray());
389 ContactEmailAddressArray::iterator contactEmailAddressIter;
390 for(contactEmailAddressIter = contact->m_emails->begin(); contactEmailAddressIter != contact->m_emails->end(); contactEmailAddressIter++)
391 m_emails->push_back((*contactEmailAddressIter)->clone());
393 m_birthday = contact->m_birthday;
394 m_anniversaries = ContactAnniversaryArrayPtr(new ContactAnniversaryArray());
395 ContactAnniversaryArray::iterator contactAnniversaryIter;
396 for(contactAnniversaryIter = contact->m_anniversaries->begin(); contactAnniversaryIter != contact->m_anniversaries->end(); contactAnniversaryIter++)
397 m_anniversaries->push_back((*contactAnniversaryIter)->clone());
399 m_organization = contact->m_organization->clone();
400 m_notes = StringArrayPtr(new StringArray());
401 StringArray::iterator noteIter;
402 for(noteIter = contact->m_notes->begin(); noteIter != contact->m_notes->end(); noteIter++)
404 std::string note = *noteIter;
405 m_notes->push_back(note);
408 m_urls = ContactWebSiteArrayPtr(new ContactWebSiteArray());
409 ContactWebSiteArray::iterator contactWebSiteIter;
410 for(contactWebSiteIter = contact->m_urls->begin(); contactWebSiteIter != contact->m_urls->end(); contactWebSiteIter++)
411 m_urls->push_back((*contactWebSiteIter)->clone());
413 m_isFavorite = contact->m_isFavorite;
414 m_ringtoneURI = contact->m_ringtoneURI;
415 m_categories = StringArrayPtr(new StringArray());
416 StringArray::iterator categoryIter;
417 for(categoryIter = contact->m_categories->begin(); categoryIter != contact->m_categories->end(); categoryIter++)
419 std::string category = *categoryIter;
420 m_categories->push_back(category);
423 m_idIsSet = contact->m_idIsSet;
424 m_lastUpdatedIsSet = contact->m_lastUpdatedIsSet;
425 m_nameIsSet = contact->m_nameIsSet;
426 m_accountIsSet = contact->m_accountIsSet;
427 m_photoURIIsSet = contact->m_photoURIIsSet;
428 m_birthdayIsSet = contact->m_birthdayIsSet;
429 m_organizationIsSet = contact->m_organizationIsSet;
430 m_ringtoneURIIsSet = contact->m_ringtoneURIIsSet;
433 void IContact::clear()
436 m_lastUpdated = {0, };
437 m_name = ContactNamePtr(new ContactName());
438 m_account = ContactAccountPtr(new ContactAccount());
439 m_addresses = ContactAddressArrayPtr(new ContactAddressArray());
441 m_phoneNumbers = ContactPhoneNumberArrayPtr(new ContactPhoneNumberArray());
442 m_emails = ContactEmailAddressArrayPtr(new ContactEmailAddressArray());
444 m_anniversaries = ContactAnniversaryArrayPtr(new ContactAnniversaryArray());
445 m_organization = ContactOrganizationPtr(new ContactOrganization());
446 m_notes = StringArrayPtr(new StringArray());
447 m_urls = ContactWebSiteArrayPtr(new ContactWebSiteArray());
448 m_isFavorite = false;
450 m_categories = StringArrayPtr(new StringArray());
453 m_lastUpdatedIsSet = false;
455 m_accountIsSet = false;
456 m_photoURIIsSet = false;
457 m_birthdayIsSet = false;
458 m_organizationIsSet = false;
459 m_ringtoneURIIsSet = false;
462 ContactPtr IContact::clone() const
464 ContactPtr result = ContactFactory::getInstance().createContact();
467 result->m_lastUpdated = {0, };
469 result->m_name = m_name->clone();
470 result->m_account = m_account->clone();
471 result->m_addresses = ContactAddressArrayPtr(new ContactAddressArray());
472 ContactAddressArray::iterator contactAddressIter;
473 for(contactAddressIter = m_addresses->begin(); contactAddressIter != m_addresses->end(); contactAddressIter++)
474 result->m_addresses->push_back((*contactAddressIter)->clone());
476 result->m_photoURI = m_photoURI;
477 result->m_phoneNumbers = ContactPhoneNumberArrayPtr(new ContactPhoneNumberArray());
478 ContactPhoneNumberArray::iterator contactPhoneNumberIter;
479 for(contactPhoneNumberIter = m_phoneNumbers->begin(); contactPhoneNumberIter != m_phoneNumbers->end(); contactPhoneNumberIter++)
480 result->m_phoneNumbers->push_back((*contactPhoneNumberIter)->clone());
482 result->m_emails = ContactEmailAddressArrayPtr(new ContactEmailAddressArray());
483 ContactEmailAddressArray::iterator contactEmailAddressIter;
484 for(contactEmailAddressIter = m_emails->begin(); contactEmailAddressIter != m_emails->end(); contactEmailAddressIter++)
485 result->m_emails->push_back((*contactEmailAddressIter)->clone());
487 result->m_birthday = m_birthday;
488 result->m_anniversaries = ContactAnniversaryArrayPtr(new ContactAnniversaryArray());
489 ContactAnniversaryArray::iterator contactAnniversaryIter;
490 for(contactAnniversaryIter = m_anniversaries->begin(); contactAnniversaryIter != m_anniversaries->end(); contactAnniversaryIter++)
491 result->m_anniversaries->push_back((*contactAnniversaryIter)->clone());
493 result->m_organization = m_organization->clone();
494 result->m_notes = StringArrayPtr(new StringArray());
495 StringArray::iterator noteIter;
496 for(noteIter = m_notes->begin(); noteIter != m_notes->end(); noteIter++)
498 std::string note = *noteIter;
499 result->m_notes->push_back(note);
502 result->m_urls = ContactWebSiteArrayPtr(new ContactWebSiteArray());
503 ContactWebSiteArray::iterator contactWebSiteIter;
504 for(contactWebSiteIter = m_urls->begin(); contactWebSiteIter != m_urls->end(); contactWebSiteIter++)
505 result->m_urls->push_back((*contactWebSiteIter)->clone());
507 result->m_isFavorite = m_isFavorite;
508 result->m_ringtoneURI = m_ringtoneURI;
509 result->m_categories = StringArrayPtr(new StringArray());
510 StringArray::iterator categoryIter;
511 for(categoryIter = m_categories->begin(); categoryIter != m_categories->end(); categoryIter++)
513 std::string category = *categoryIter;
514 result->m_categories->push_back(category);
517 result->m_idIsSet = false;
518 result->m_lastUpdatedIsSet = false;
519 result->m_nameIsSet = m_nameIsSet;
520 result->m_accountIsSet = m_accountIsSet;
521 result->m_photoURIIsSet = m_photoURIIsSet;
522 result->m_birthdayIsSet = m_birthdayIsSet;
523 result->m_organizationIsSet = m_organizationIsSet;
524 result->m_ringtoneURIIsSet = m_ringtoneURIIsSet;