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.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 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 branch office's phone number
96 * @return Branch office's phone number
98 DialableLandLineNumber getBranchLandLineNumber ();
101 * Setter for branch office's phone number
103 * @param branchPhoneNumber Branch office's phone number
105 void setBranchLandLineNumber (final DialableLandLineNumber branchPhoneNumber);
108 * Getter for branch office number
110 * @return Branch office number
112 Long getBranchNumber ();
115 * Setter for branch office number
117 * @param branchNumber Branch office number
119 void setBranchNumber (final Long branchNumber);
122 * Getter for branch office's store
124 * @return Branch office's store
126 Short getBranchStore ();
129 * Setter for branch office's store
131 * @param branchStore Branch office's store
133 void setBranchStore (final Short branchStore);
136 * Getter for branch office's street name
138 * @return Branch office's street name
140 String getBranchStreet ();
143 * Setter for branch office's street name
145 * @param branchStreet Branch office's street name
147 void setBranchStreet (final String branchStreet);
150 * Getter for branch office's suite number
152 * @return Branch office's suite number
154 Short getBranchSuiteNumber ();
157 * Setter for branch office's suite number
159 * @param branchSuiteNumber Branch office's suite number
161 void setBranchSuiteNumber (final Short branchSuiteNumber);
164 * Getter for opening times for this branch office
166 * @return Opening times
168 List<OpeningTime> getBranchOpeningTimes ();
171 * Setter for opening times for this branch office
173 * @param branchOpeningTimes Opening times
175 void setBranchOpeningTimes (final List<OpeningTime> branchOpeningTimes);
178 * Getter for branch office owning employee
180 * @return Owning employee
182 Employable getBranchOwnerEmployee ();
185 * Setter for branch office owning employee
187 * @param branchOwnerEmployee Owning employee
189 void setBranchOwnerEmployee (final Employable branchOwnerEmployee);
192 * Getter for branch office's ZIP code
194 * @return Branch office's ZIP code
196 Integer getBranchZipCode ();
199 * Setter for branch office's ZIP code
201 * @param branchZipCode Branch office's ZIP code
203 void setBranchZipCode (final Integer branchZipCode);
206 * Getter for branch office's id number
208 * @return Branch office's id number
213 * Setter for branch office's id number
215 * @param branchId Branch office's id number
217 void setBranchId (final Long branchId);
220 * Getter for branch office's country
222 * @return Branch office's country
224 Country getBranchCountry ();
227 * Setter for branch office's country
229 * @param branchCountryCode Branch office's country
231 void setBranchCountry (final Country branchCountryCode);
234 * Getter for branch office's company
236 * @return Branch office's company
238 BasicData getBranchCompany ();
241 * Setter for branch office's company
243 * @param branchCompany Branch office's company
245 void setBranchCompany (final BasicData branchCompany);
248 * Getter branch office's contact person
250 * @return Branch office's contact person
252 Employable getBranchContactEmployee ();
255 * Setter branch office's contact person
257 * @param branchEmployee Branch office's contact person
259 void setBranchContactEmployee (final Employable branchEmployee);
262 * Getter for user owner instance
264 * @return User owner instance
266 User getBranchUserOwner ();
269 * Setter for user owner instance
271 * @param branchUserOwner User owner instance
273 void setBranchUserOwner (final User branchUserOwner);
276 * Getter for timestamp when this entry has been created
278 * @return Timestamp when this entry has been created
280 Date getBranchCreated ();
283 * Setter for timestamp when this entry has been created
285 * @param branchCreated Timestamp when this entry has been created
287 void setBranchCreated (final Date branchCreated);
290 boolean equals (final Object object);