]> git.mxchange.org Git - jcontacts-business-core.git/blob - src/org/mxchange/jcontactsbusiness/model/employee/Employable.java
Continued:
[jcontacts-business-core.git] / src / org / mxchange / jcontactsbusiness / model / employee / Employable.java
1 /*
2  * Copyright (C) 2016 - 2018 Free Software Foundation
3  *
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.
8  *
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.
13  *
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/>.
16  */
17 package org.mxchange.jcontactsbusiness.model.employee;
18
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jcontacts.model.contact.Contact;
22 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
23 import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
24 import org.mxchange.jcontactsbusiness.model.department.Department;
25 import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
26 import org.mxchange.jcontactsbusiness.model.jobposition.JobPosition;
27 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
28 import org.mxchange.jusercore.model.user.User;
29
30 /**
31  * A POJI for employees
32  * <p>
33  * @author Roland Häder<roland@mxchange.org>
34  */
35 public interface Employable extends Serializable {
36
37         /**
38          * Getter for employee's branch office
39          * <p>
40          * @return Employable's branch office
41          */
42         BranchOffice getEmployeeBranchOffice ();
43
44         /**
45          * Setter for employee's branch office
46          * <p>
47          * @param employeeBranchOffice Employable's branch office
48          */
49         void setEmployeeBranchOffice (final BranchOffice employeeBranchOffice);
50
51         /**
52          * Getter for employee's company
53          * <p>
54          * @return Company instance
55          */
56         BasicData getEmployeeCompany ();
57
58         /**
59          * Setter for employee's company
60          * <p>
61          * @param employeeCompany Company instance
62          */
63         void setEmployeeCompany (final BasicData employeeCompany);
64
65         /**
66          * Getter for employee's department
67          * <p>
68          * @return Employable's department
69          */
70         Department getEmployeeDepartment ();
71
72         /**
73          * Setter for employee's department
74          * <p>
75          * @param employeeDepartment Employable's department
76          */
77         void setEmployeeDepartment (final Department employeeDepartment);
78
79         /**
80          * Getter for employee's head quarters
81          * <p>
82          * @return Employable's head quarters
83          */
84         Headquarter getEmployeeHeadquarter ();
85
86         /**
87          * Getter for employee's head quarters
88          * <p>
89          * @param employeeHeadquarter Employable's head quarters
90          */
91         void setEmployeeHeadquarter (final Headquarter employeeHeadquarter);
92
93         /**
94          * Getter for employee's email address
95          * <p>
96          * @return Employable's email address
97          */
98         String getEmployeeEmailAddress ();
99
100         /**
101          * Setter for employee's email address
102          * <p>
103          * @param employeeEmailAddress Employable's email address
104          */
105         void setEmployeeEmailAddress (final String employeeEmailAddress);
106
107         /**
108          * Getter for employee's id number
109          * <p>
110          * @return Employable's id number
111          */
112         Long getEmployeeId ();
113
114         /**
115          * Setter for employee's id number
116          * <p>
117          * @param employeeId Employable's id number
118          */
119         void setEmployeeId (final Long employeeId);
120
121         /**
122          * Getter for employee's mobile number
123          * <p>
124          * @return Employable's mobile number
125          */
126         DialableMobileNumber getEmployeeMobileNumber ();
127
128         /**
129          * Setter for employee's mobile number
130          * <p>
131          * @param employeeMobileNumber Employable's mobile number
132          */
133         void setEmployeeMobileNumber (final DialableMobileNumber employeeMobileNumber);
134
135         /**
136          * Getter for employee's number
137          * <p>
138          * @return Employable's number
139          */
140         String getEmployeeNumber ();
141
142         /**
143          * Setter for employee's number
144          * <p>
145          * @param employeeNumber Employable's number
146          */
147         void setEmployeeNumber (final String employeeNumber);
148
149         /**
150          * Getter for employee's personal data
151          * <p>
152          * @return Employable's personal data
153          */
154         Contact getEmployeePersonalData ();
155
156         /**
157          * Setter for employee's personal data
158          * <p>
159          * @param employeePersonalData Employable's personal data
160          */
161         void setEmployeePersonalData (final Contact employeePersonalData);
162
163         /**
164          * Getter for employee's phone number/extension
165          * <p>
166          * @return Employable's phone number/extension
167          */
168         Integer getEmployeePhoneExtension ();
169
170         /**
171          * Setter for employee's phone number/extension
172          * <p>
173          * @param employeePhoneExtension Employable's phone number/extension
174          */
175         void setEmployeePhoneExtension (final Integer employeePhoneExtension);
176
177         /**
178          * Getter for employee's position
179          * <p>
180          * @return Employable's position
181          */
182         JobPosition getEmployeePosition ();
183
184         /**
185          * Setter for employee's position
186          * <p>
187          * @param employeePosition Employable's position
188          */
189         void setEmployeePosition (final JobPosition employeePosition);
190
191         /**
192          * Getter for user owner instance
193          * <p>
194          * @return User owner instance
195          */
196         User getEmployeeUserOwner ();
197
198         /**
199          * Setter for user owner instance
200          * <p>
201          * @param employeeUserOwner User owner instance
202          */
203         void setEmployeeUserOwner (final User employeeUserOwner);
204
205         /**
206          * Getter for timestamp when this entry has been created
207          * <p>
208          * @return Timestamp when this entry has been created
209          */
210         Date getEmployeeCreated ();
211
212         /**
213          * Setter for timestamp when this entry has been created
214          * <p>
215          * @param employeeCreated Timestamp when this entry has been created
216          */
217         void setEmployeeCreated (final Date employeeCreated);
218
219         @Override
220         boolean equals (final Object object);
221
222         @Override
223         int hashCode ();
224 }