2 * Copyright (C) 2016 - 2018 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.employee;
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;
31 * A POJI for employees
33 * @author Roland Häder<roland@mxchange.org>
35 public interface Employable extends Serializable {
38 * Getter for employee's branch office
40 * @return Employable's branch office
42 BranchOffice getEmployeeBranchOffice ();
45 * Setter for employee's branch office
47 * @param employeeBranchOffice Employable's branch office
49 void setEmployeeBranchOffice (final BranchOffice employeeBranchOffice);
52 * Getter for employee's company
54 * @return Company instance
56 BasicData getEmployeeCompany ();
59 * Setter for employee's company
61 * @param employeeCompany Company instance
63 void setEmployeeCompany (final BasicData employeeCompany);
66 * Getter for employee's department
68 * @return Employable's department
70 Department getEmployeeDepartment ();
73 * Setter for employee's department
75 * @param employeeDepartment Employable's department
77 void setEmployeeDepartment (final Department employeeDepartment);
80 * Getter for employee's head quarters
82 * @return Employable's head quarters
84 Headquarter getEmployeeHeadquarter ();
87 * Getter for employee's head quarters
89 * @param employeeHeadquarter Employable's head quarters
91 void setEmployeeHeadquarter (final Headquarter employeeHeadquarter);
94 * Getter for employee's email address
96 * @return Employable's email address
98 String getEmployeeEmailAddress ();
101 * Setter for employee's email address
103 * @param employeeEmailAddress Employable's email address
105 void setEmployeeEmailAddress (final String employeeEmailAddress);
108 * Getter for employee's id number
110 * @return Employable's id number
112 Long getEmployeeId ();
115 * Setter for employee's id number
117 * @param employeeId Employable's id number
119 void setEmployeeId (final Long employeeId);
122 * Getter for employee's mobile number
124 * @return Employable's mobile number
126 DialableMobileNumber getEmployeeMobileNumber ();
129 * Setter for employee's mobile number
131 * @param employeeMobileNumber Employable's mobile number
133 void setEmployeeMobileNumber (final DialableMobileNumber employeeMobileNumber);
136 * Getter for employee's number
138 * @return Employable's number
140 String getEmployeeNumber ();
143 * Setter for employee's number
145 * @param employeeNumber Employable's number
147 void setEmployeeNumber (final String employeeNumber);
150 * Getter for employee's personal data
152 * @return Employable's personal data
154 Contact getEmployeePersonalData ();
157 * Setter for employee's personal data
159 * @param employeePersonalData Employable's personal data
161 void setEmployeePersonalData (final Contact employeePersonalData);
164 * Getter for employee's phone number/extension
166 * @return Employable's phone number/extension
168 Integer getEmployeePhoneExtension ();
171 * Setter for employee's phone number/extension
173 * @param employeePhoneExtension Employable's phone number/extension
175 void setEmployeePhoneExtension (final Integer employeePhoneExtension);
178 * Getter for employee's position
180 * @return Employable's position
182 JobPosition getEmployeePosition ();
185 * Setter for employee's position
187 * @param employeePosition Employable's position
189 void setEmployeePosition (final JobPosition employeePosition);
192 * Getter for user owner instance
194 * @return User owner instance
196 User getEmployeeUserOwner ();
199 * Setter for user owner instance
201 * @param employeeUserOwner User owner instance
203 void setEmployeeUserOwner (final User employeeUserOwner);
206 * Getter for timestamp when this entry has been created
208 * @return Timestamp when this entry has been created
210 Date getEmployeeCreated ();
213 * Setter for timestamp when this entry has been created
215 * @param employeeCreated Timestamp when this entry has been created
217 void setEmployeeCreated (final Date employeeCreated);
220 boolean equals (final Object object);