2 * Copyright (C) 2016 - 2020 Free Software Foundation
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.headquarter;
19 import java.io.Serializable;
20 import java.util.Date;
21 import java.util.List;
22 import org.mxchange.jcontactsbusiness.model.employee.Employable;
23 import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
24 import org.mxchange.jcountry.model.data.Country;
25 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
26 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
27 import org.mxchange.jusercore.model.user.User;
30 * A POJI for headquarter data
32 * @author Roland Häder<roland@mxchange.org>
34 public interface Headquarter extends Comparable<Headquarter>, Serializable {
37 * Getter for headquarter's city name
39 * @return Headquarter's city name
41 String getHeadquarterCity ();
44 * Setter for headquarter's city name
46 * @param headquarterCity Headquarter's city name
48 void setHeadquarterCity (final String headquarterCity);
51 * Getter for headquarter's company name
53 * @return Headquarter's company name
55 String getHeadquarterCompanyName ();
58 * Setter for headquarter's company name
60 * @param headquarterCompanyName Headquarter's company name
62 void setHeadquarterCompanyName (final String headquarterCompanyName);
65 * Getter for headquarter's country code
67 * @return Headquarter's country code
69 Country getHeadquarterCountry ();
72 * Setter for headquarter's country code
74 * @param headquarterCountryCode Headquarter's country code
76 void setHeadquarterCountry (final Country headquarterCountryCode);
79 * Getter for headquarter's house number
81 * @return Headquarter's house number
83 Short getHeadquarterHouseNumber ();
86 * Setter for headquarter's house number
88 * @param headquarterHouseNumber Headquarter's house number
90 void setHeadquarterHouseNumber (final Short headquarterHouseNumber);
93 * Getter for house number's extension
95 * @return House number's extension
97 String getHeadquarterHouseNumberExtension ();
100 * Setter for house number's extension
102 * @param headquarterHouseNumberExtension House number's extension
104 void setHeadquarterHouseNumberExtension (final String headquarterHouseNumberExtension);
107 * Getter for headquarter's last house number
109 * @return Headquarter's last house number
111 Short getHeadquarterLastHouseNumber ();
114 * Setter for headquarter's last house number
116 * @param headquarterLastHouseNumber Headquarter's last house number
118 void setHeadquarterLastHouseNumber (final Short headquarterLastHouseNumber);
121 * Getter for headquarter's id number
123 * @return Headquarter's id number
125 Long getHeadquarterId ();
128 * Setter for headquarter's id number
130 * @param headquarterId Headquarter's id number
132 void setHeadquarterId (final Long headquarterId);
135 * Getter for headquarter's store number
137 * @return Headquarter's store number
139 Short getHeadquarterStore ();
142 * Setter for headquarter's store number
144 * @param headquarterStore Headquarter's store number
146 void setHeadquarterStore (final Short headquarterStore);
149 * Getter for headquarter's street name
151 * @return Headquarter's street name
153 String getHeadquarterStreet ();
156 * Setter for headquarter's street name
158 * @param headquarterStreet Headquarter's street name
160 void setHeadquarterStreet (final String headquarterStreet);
163 * Getter for headquarter's suite number
165 * @return Headquarter's suite number
167 Short getHeadquarterSuiteNumber ();
170 * Setter for headquarter's suite number
172 * @param headquarterSuiteNumber Headquarter's suite number
174 void setHeadquarterSuiteNumber (final Short headquarterSuiteNumber);
177 * Getter for headquarter's ZIP code
179 * @return Headquarter's ZIP code
181 Integer getHeadquarterZipCode ();
184 * Setter for headquarter's ZIP code
186 * @param headquarterZipCode Headquarter's ZIP code
188 void setHeadquarterZipCode (final Integer headquarterZipCode);
191 * Getter for headquarter's land-line number
193 * @return Headquarter's land-line number
195 DialableLandLineNumber getHeadquarterLandLineNumber ();
198 * Setter for headquarter's land-line number
200 * @param headquarterLandLineNumber Headquarter's land-line number
202 void setHeadquarterLandLineNumber (final DialableLandLineNumber headquarterLandLineNumber);
205 * Getter for headquarter's fax number
207 * @return Headquarter's fax number
209 DialableFaxNumber getHeadquarterFaxNumber ();
212 * Setter for headquarter's fax number
214 * @param headquarterFaxNumber Headquarter's fax number
216 void setHeadquarterFaxNumber (final DialableFaxNumber headquarterFaxNumber);
219 * Getter for user owner instance
221 * @return User owner instance
223 User getHeadquarterUserOwner ();
226 * Setter for user owner instance
228 * @param headquarterUserOwner User owner instance
230 void setHeadquarterUserOwner (final User headquarterUserOwner);
233 * Getter for branch office owning employee
235 * @return Owning employee
237 Employable getHeadquarterContactEmployee ();
240 * Setter for branch office contact person
242 * @param branchContactEmployee Contact person
244 void setHeadquarterContactEmployee (final Employable branchContactEmployee);
247 * Getter for opening times for this branch office
249 * @return Opening times
251 List<OpeningTime> getHeadquarterOpeningTimes ();
254 * Setter for opening times for this branch office
256 * @param branchOpeningTimes Opening times
258 void setHeadquarterOpeningTimes (final List<OpeningTime> branchOpeningTimes);
261 * Getter for headquarter's email address
263 * @return Headquarter's email address
265 String getHeadquarterEmailAddress ();
268 * Setter for headquarter's email address
270 * @param headquarterEmailAddress Headquarter's email address
272 void setHeadquarterEmailAddress (final String headquarterEmailAddress);
275 * Getter for timestamp when this entry has been created
277 * @return Timestamp when this entry has been created
279 Date getHeadquarterCreated ();
282 * Setter for timestamp when this entry has been created
284 * @param headquarterCreated Timestamp when this entry has been created
286 void setHeadquarterCreated (final Date headquarterCreated);
289 boolean equals (final Object object);