2 * Copyright (C) 2016, 2017 Roland Häder
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.jcontactsbusiness.model.basicdata;
19 import java.io.Serializable;
20 import java.util.Date;
21 import java.util.List;
22 import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
23 import org.mxchange.jcontactsbusiness.model.employee.Employable;
24 import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
25 import org.mxchange.jcontactsbusiness.model.logo.Logo;
26 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
27 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
28 import org.mxchange.jusercore.model.user.User;
31 * A POJI for business contact classes
33 * @author Roland Häder<roland@mxchange.org>
35 public interface BasicData extends Serializable {
38 * Getter for branches list
40 * @return Branches list
42 List<BranchOffice> getBrancheOffices ();
45 * Setter for branches list
47 * @param branches Branches list
49 void setBrancheOffices (final List<BranchOffice> branches);
52 * Getter for company contact person
54 * @return Company contact person
56 Employable getCompanyContactEmployee ();
59 * Setter for company contact person
61 * @param companyContact Company contact person
63 void setCompanyContactEmployee (final Employable companyContact);
66 * Getter for business contact id
68 * @return Business contact id
70 Long getBasicDataId ();
73 * Setter for business contact id
75 * @param businessContactId Business contact id
77 void setBasicDataId (final Long businessContactId);
80 * Getter for company founder
82 * @return Company founder
84 Employable getCompanyFounder ();
87 * Setter for company founder
89 * @param companyFounder Company founder
91 void setCompanyFounder (final Employable companyFounder);
94 * Getter for headquarter data
96 * @return Headquarter data
98 Headquarter getCompanyHeadquarterData ();
101 * Setter for headquarter data
103 * @param headQuartersData Headquarter data
105 void setCompanyHeadquarterData (final Headquarter headQuartersData);
108 * Getter for user owner instance
110 * @return User owner instance
112 User getCompanyUserOwner ();
115 * Setter for user owner instance
117 * @param contactUserOwner User owner instance
119 void setCompanyUserOwner (final User contactUserOwner);
122 * Getter for timestamp when this entry has been created
124 * @return Timestamp when this entry has been created
126 Date getCompanyCreated ();
129 * Setter for timestamp when this entry has been created
131 * @param contactCreated Timestamp when this entry has been created
133 void setCompanyCreated (final Date contactCreated);
136 * Getter for comments
140 String getCompanyComments ();
143 * Setter for comments
145 * @param companyComments Comments
147 void setCompanyComments (final String companyComments);
150 * Getter for email address
152 * @return Email address
154 String getCompanyEmailAddress ();
157 * Setter for email address
159 * @param companyEmailAddress Email address
161 void setCompanyEmailAddress (final String companyEmailAddress);
164 * Getter for list of fax number
166 * @return Fax numbers
168 DialableFaxNumber getCompanyFaxNumber ();
171 * Setter for list of fax number
173 * @param companyFaxNumber Fax numbers
175 void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber);
178 * Getter for company logo
180 * @return Company logo
182 Logo getCompanyLogo ();
185 * Setter for company logo
187 * @param companyLogo Company logo
189 void setCompanyLogo (final Logo companyLogo);
192 * Getter for company name
194 * @return Company name
196 String getCompanyName ();
199 * Setter for company name
201 * @param companyName Company name
203 void setCompanyName (final String companyName);
206 * Getter for list of phone number
208 * @return Phone numbers
210 DialableLandLineNumber getCompanyLandLineNumber ();
213 * Setter for list of phone number
215 * @param companyPhoneNumber Phone numbers
217 void setCompanyLandLineNumber (final DialableLandLineNumber companyPhoneNumber);
220 * Getter for tax number
224 String getCompanyTaxNumber ();
227 * Setter for tax number
229 * @param companyTaxNumber Tax number
231 void setCompanyTaxNumber (final String companyTaxNumber);
234 * Getter for website URL
236 * @return Website URL
238 String getCompanyWebsiteUrl ();
241 * Setter for website URL
243 * @param companyWebsiteUrl Website URL
245 void setCompanyWebsiteUrl (final String companyWebsiteUrl);
248 boolean equals (final Object object);