2 * Copyright (C) 2015 Roland Haeder
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jcontacts.contact;
19 import java.io.Serializable;
20 import java.util.Calendar;
21 import java.util.Date;
22 import org.mxchange.jcontacts.contact.gender.Gender;
23 import org.mxchange.jcountry.data.Country;
24 import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
25 import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
26 import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
29 * A general contact interface
31 * @author Roland Haeder<roland@mxchange.org>
33 public interface Contact extends Serializable {
36 * Copies all attributes from other contact object to this
38 * @param contact Source instance
40 public void copyAll (final Contact contact);
45 * @return the birthday
47 public Date getContactBirthday ();
52 * @param birthday the birthday to set
54 public void setContactBirthday (final Date birthday);
57 * Getter for cellphone number
59 * @return Cellphone number
61 public DialableCellphoneNumber getContactCellphoneNumber ();
64 * Setter for cellphone number
66 * @param cellphoneNumber Cellphone number
68 public void setContactCellphoneNumber (final DialableCellphoneNumber cellphoneNumber);
75 public String getContactCity ();
80 * @param city the city to set
82 public void setContactCity (final String city);
89 public String getContactComment ();
94 * @param comment the comment to set
96 public void setContactComment (final String comment);
101 * @return the contactId
103 public Long getContactId ();
108 * @param id the contactId to set
110 public void setContactId (final Long id);
115 * @return the countryCode
117 public Country getContactCountry ();
122 * @param contactCountry the countryCode to set
124 public void setContactCountry (final Country contactCountry);
127 * Getter for "created" timestamp
129 * @return "created" timestamp
131 public Calendar getContactCreated ();
134 * Setter for "created" timestamp
136 * @param created "created" timestamp
138 public void setContactCreated (final Calendar created);
143 * @return the emailAddress
145 public String getContactEmailAddress ();
150 * @param emailAddress the emailAddress to set
152 public void setContactEmailAddress (final String emailAddress);
157 * @return the familyName
159 public String getContactFamilyName ();
164 * @param familyName the familyName to set
166 public void setContactFamilyName (final String familyName);
171 * @return the faxNumber
173 public DialableFaxNumber getContactFaxNumber ();
178 * @param faxNumber the faxNumber to set
180 public void setContactFaxNumber (final DialableFaxNumber faxNumber);
185 * @return the first name
187 public String getContactFirstName ();
192 * @param firstName the first name to set
194 public void setContactFirstName (final String firstName);
197 * Gender of the contact
201 public Gender getContactGender ();
204 * Gender of the contact
206 * @param gender the gender to set
208 public void setContactGender (final Gender gender);
213 * @return the houseNumber
215 public Short getContactHouseNumber ();
220 * @param houseNumber the houseNumber to set
222 public void setContactHouseNumber (final Short houseNumber);
225 * Setter for own contact
227 * @param ownContact Own contact
229 public void setContactOwnContact (final Boolean ownContact);
232 * Getter for phone number
234 * @return Phone number
236 public DialableLandLineNumber getContactPhoneNumber ();
239 * Setter for phone number
241 * @param phoneNumber Phone number
243 public void setContactPhoneNumber (final DialableLandLineNumber phoneNumber);
250 public String getContactStreet ();
255 * @param street the street to set
257 public void setContactStreet (final String street);
260 * Getter for "updated" timestamp
262 * @return "updated" timestamp
264 public Calendar getContactUpdated ();
267 * Getter for "updated" timestamp
269 * @param updated "updated" timestamp
271 public void setContactUpdated (final Calendar updated);
276 * @return the zipCode
278 public Integer getContactZipCode ();
283 * @param zipCode the zipCode to set
285 public void setContactZipCode (final Integer zipCode);
288 * Checks whether the contact is user's own data
292 public Boolean isOwnContact ();