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.headquarters;
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 headquarters data
32 * @author Roland Häder<roland@mxchange.org>
34 public interface Headquarters extends Serializable {
37 * Getter for headquarters' city name
39 * @return Headquarters' city name
41 String getHeadquartersCity ();
44 * Setter for headquarters' city name
46 * @param headquartersCity Headquarters' city name
48 void setHeadquartersCity (final String headquartersCity);
51 * Getter for headquarters' country code
53 * @return Headquarters' country code
55 Country getHeadquartersCountry ();
58 * Setter for headquarters' country code
60 * @param headquartersCountryCode Headquarters' country code
62 void setHeadquartersCountry (final Country headquartersCountryCode);
65 * Getter for headquarters' house number
67 * @return Headquarters' house number
69 Short getHeadquartersHouseNumber ();
72 * Setter for headquarters' house number
74 * @param headquartersHouseNumber Headquarters' house number
76 void setHeadquartersHouseNumber (final Short headquartersHouseNumber);
79 * Getter for headquarters' id number
81 * @return Headquarters' id number
83 Long getHeadquartersId ();
86 * Setter for headquarters' id number
88 * @param headquartersId Headquarters' id number
90 void setHeadquartersId (final Long headquartersId);
93 * Getter for headquarters' store number
95 * @return Headquarters' store number
97 Short getHeadquartersStore ();
100 * Setter for headquarters' store number
102 * @param headquartersStore Headquarters' store number
104 void setHeadquartersStore (final Short headquartersStore);
107 * Getter for headquarters' street name
109 * @return Headquarters' street name
111 String getHeadquartersStreet ();
114 * Setter for headquarters' street name
116 * @param headquartersStreet Headquarters' street name
118 void setHeadquartersStreet (final String headquartersStreet);
121 * Getter for headquarters' suite number
123 * @return Headquarters' suite number
125 Short getHeadquartersSuiteNumber ();
128 * Setter for headquarters' suite number
130 * @param headquartersSuiteNumber Headquarters' suite number
132 void setHeadquartersSuiteNumber (final Short headquartersSuiteNumber);
135 * Getter for headquarters' ZIP code
137 * @return Headquarters' ZIP code
139 Integer getHeadquartersZipCode ();
142 * Setter for headquarters' ZIP code
144 * @param headquartersZipCode Headquarters' ZIP code
146 void setHeadquartersZipCode (final Integer headquartersZipCode);
149 * Getter for headquarters' land-line number
151 * @return Headquarters' land-line number
153 DialableLandLineNumber getHeadquartersLandLineNumber ();
156 * Setter for headquarters' land-line number
158 * @param headquartersLandLineNumber Headquarters' land-line number
160 void setHeadquartersLandLineNumber (final DialableLandLineNumber headquartersLandLineNumber);
163 * Getter for headquarters' fax number
165 * @return Headquarters' fax number
167 DialableFaxNumber getHeadquartersFaxNumber ();
170 * Setter for headquarters' fax number
172 * @param headquartersFaxNumber Headquarters' fax number
174 void setHeadquartersFaxNumber (final DialableFaxNumber headquartersFaxNumber);
177 * Getter for user owner instance
179 * @return User owner instance
181 User getHeadquartersUserOwner ();
184 * Setter for user owner instance
186 * @param headquartersUserOwner User owner instance
188 void setHeadquartersUserOwner (final User headquartersUserOwner);
191 * Getter for branch office owning employee
193 * @return Owning employee
195 Employable getHeadquartersContactEmployee ();
198 * Setter for branch office contact person
200 * @param branchContactEmployee Contact person
202 void setHeadquartersContactEmployee (final Employable branchContactEmployee);
205 * Getter for opening times for this branch office
207 * @return Opening times
209 List<OpeningTime> getHeadquartersOpeningTimes ();
212 * Setter for opening times for this branch office
214 * @param branchOpeningTimes Opening times
216 void setHeadquartersOpeningTimes (final List<OpeningTime> branchOpeningTimes);
219 * Getter for timestamp when this entry has been created
221 * @return Timestamp when this entry has been created
223 Date getHeadquartersCreated ();
226 * Setter for timestamp when this entry has been created
228 * @param headquartersCreated Timestamp when this entry has been created
230 void setHeadquartersCreated (final Date headquartersCreated);
233 boolean equals (final Object object);