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.branchoffice;
19 import java.io.Serializable;
20 import java.util.Date;
21 import java.util.List;
22 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
23 import org.mxchange.jcontactsbusiness.model.employee.Employable;
24 import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
25 import org.mxchange.jcountry.model.data.Country;
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 branch offices
33 * @author Roland Häder<roland@mxchange.org>
35 public interface BranchOffice extends Comparable<BranchOffice>, Serializable {
38 * Getter for branch office's city name
40 * @return Branch office's city name
42 String getBranchCity ();
45 * Setter for branch office's city name
47 * @param branchCity Branch office's city name
49 void setBranchCity (final String branchCity);
52 * Getter for branch office's email address
54 * @return Branch office's email address
56 String getBranchEmailAddress ();
59 * Setter for branch office's email address
61 * @param branchEmailAddress Branch office's email address
63 void setBranchEmailAddress (final String branchEmailAddress);
66 * Getter for branch office's fax number
68 * @return Branch office's fax number
70 DialableFaxNumber getBranchFaxNumber ();
73 * Setter for branch office's fax number
75 * @param branchFaxNumber Branch office's fax number
77 void setBranchFaxNumber (final DialableFaxNumber branchFaxNumber);
80 * Getter for branch office's house number
82 * @return Branch office's house number
84 Short getBranchHouseNumber ();
87 * Setter for branch office's house number
89 * @param branchHouseNumber Branch office's house number
91 void setBranchHouseNumber (final Short branchHouseNumber);
94 * Getter for house number's extension
96 * @return House number's extension
98 String getBranchHouseNumberExtension ();
101 * Setter for house number's extension
103 * @param branchHouseNumberExtension House number's extension
105 void setBranchHouseNumberExtension (final String branchHouseNumberExtension);
108 * Getter for branch office's last house number
110 * @return Branch office's last house number
112 Short getBranchLastHouseNumber ();
115 * Setter for branch office's last house number
117 * @param branchLastHouseNumber Branch office's last house number
119 void setBranchLastHouseNumber (final Short branchLastHouseNumber);
122 * Getter for branch office's phone number
124 * @return Branch office's phone number
126 DialableLandLineNumber getBranchLandLineNumber ();
129 * Setter for branch office's phone number
131 * @param branchPhoneNumber Branch office's phone number
133 void setBranchLandLineNumber (final DialableLandLineNumber branchPhoneNumber);
136 * Getter for branch office number
138 * @return Branch office number
140 Long getBranchNumber ();
143 * Setter for branch office number
145 * @param branchNumber Branch office number
147 void setBranchNumber (final Long branchNumber);
150 * Getter for branch office's store
152 * @return Branch office's store
154 Short getBranchStore ();
157 * Setter for branch office's store
159 * @param branchStore Branch office's store
161 void setBranchStore (final Short branchStore);
164 * Getter for branch office's street name
166 * @return Branch office's street name
168 String getBranchStreet ();
171 * Setter for branch office's street name
173 * @param branchStreet Branch office's street name
175 void setBranchStreet (final String branchStreet);
178 * Getter for branch office's suite number
180 * @return Branch office's suite number
182 Short getBranchSuiteNumber ();
185 * Setter for branch office's suite number
187 * @param branchSuiteNumber Branch office's suite number
189 void setBranchSuiteNumber (final Short branchSuiteNumber);
192 * Getter for opening times for this branch office
194 * @return Opening times
196 List<OpeningTime> getBranchOpeningTimes ();
199 * Setter for opening times for this branch office
201 * @param branchOpeningTimes Opening times
203 void setBranchOpeningTimes (final List<OpeningTime> branchOpeningTimes);
206 * Getter for branch office owning employee
208 * @return Owning employee
210 Employable getBranchOwnerEmployee ();
213 * Setter for branch office owning employee
215 * @param branchOwnerEmployee Owning employee
217 void setBranchOwnerEmployee (final Employable branchOwnerEmployee);
220 * Getter for branch office's ZIP code
222 * @return Branch office's ZIP code
224 Integer getBranchZipCode ();
227 * Setter for branch office's ZIP code
229 * @param branchZipCode Branch office's ZIP code
231 void setBranchZipCode (final Integer branchZipCode);
234 * Getter for branch office's id number
236 * @return Branch office's id number
241 * Setter for branch office's id number
243 * @param branchId Branch office's id number
245 void setBranchId (final Long branchId);
248 * Getter for branch office's country
250 * @return Branch office's country
252 Country getBranchCountry ();
255 * Setter for branch office's country
257 * @param branchCountryCode Branch office's country
259 void setBranchCountry (final Country branchCountryCode);
262 * Getter for branch office's company
264 * @return Branch office's company
266 BasicData getBranchCompany ();
269 * Setter for branch office's company
271 * @param branchCompany Branch office's company
273 void setBranchCompany (final BasicData branchCompany);
276 * Getter branch office's contact person
278 * @return Branch office's contact person
280 Employable getBranchContactEmployee ();
283 * Setter branch office's contact person
285 * @param branchEmployee Branch office's contact person
287 void setBranchContactEmployee (final Employable branchEmployee);
290 * Getter for user owner instance
292 * @return User owner instance
294 User getBranchUserOwner ();
297 * Setter for user owner instance
299 * @param branchUserOwner User owner instance
301 void setBranchUserOwner (final User branchUserOwner);
304 * Getter for timestamp when this entry has been created
306 * @return Timestamp when this entry has been created
308 Date getBranchCreated ();
311 * Setter for timestamp when this entry has been created
313 * @param branchCreated Timestamp when this entry has been created
315 void setBranchCreated (final Date branchCreated);
318 boolean equals (final Object object);