]> git.mxchange.org Git - jcontacts-business-core.git/blob - src/org/mxchange/jcontactsbusiness/model/department/Department.java
Updated copyright year
[jcontacts-business-core.git] / src / org / mxchange / jcontactsbusiness / model / department / Department.java
1 /*
2  * Copyright (C) 2016 - 2020 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.department;
18
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
22 import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
23 import org.mxchange.jcontactsbusiness.model.employee.Employable;
24 import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
25 import org.mxchange.jusercore.model.user.User;
26
27 /**
28  * A POJI for company departments
29  * <p>
30  * @author Roland Häder<roland@mxchange.org>
31  */
32 public interface Department extends Comparable<Department>, Serializable {
33
34         /**
35          * Getter for connection to business contact
36          * <p>
37          * @return Connection to business contact
38          */
39         BasicData getDepartmentCompany ();
40
41         /**
42          * Setter for connection to business contact
43          * <p>
44          * @param departmentCompany Connection to business contact
45          */
46         void setDepartmentCompany (final BasicData departmentCompany);
47
48         /**
49          * Getter for connection to company headquarter
50          * <p>
51          * @return Connection to company headquarter
52          */
53         Headquarter getDepartmentHeadquarter ();
54
55         /**
56          * Setter for connection to company headquarter
57          * <p>
58          * @param departmentHeadquarter Connection to company headquarter
59          */
60         void setDepartmentHeadquarter (final Headquarter departmentHeadquarter);
61
62         /**
63          * Getter for connection to company branch office
64          * <p>
65          * @return Connection to company branch office
66          */
67         BranchOffice getDepartmentBranchOffice ();
68
69         /**
70          * Setter for connection to company branch office
71          * <p>
72          * @param departmentBranchOffice Connection to company branch office
73          */
74         void setDepartmentBranchOffice (final BranchOffice departmentBranchOffice);
75
76         /**
77          * Getter for department id
78          * <p>
79          * @return Department id
80          */
81         Long getDepartmentId ();
82
83         /**
84          * Setter for department id
85          * <p>
86          * @param departmentId Department id
87          */
88         void setDepartmentId (final Long departmentId);
89
90         /**
91          * Getter for department lead employee
92          * <p>
93          * @return Department lead employee
94          */
95         Employable getDepartmentLead ();
96
97         /**
98          * Setter for department lead employee
99          * <p>
100          * @param departmentLead Department lead employee
101          */
102         void setDepartmentLead (final Employable departmentLead);
103
104         /**
105          * Getter for department i18n key
106          * <p>
107          * @return Department i18n key
108          */
109         String getDepartmentI18nKey ();
110
111         /**
112          * Setter for department i18n key
113          * <p>
114          * @param departmentI18nKey Department i18n key
115          */
116         void setDepartmentI18nKey (final String departmentI18nKey);
117
118         /**
119          * Getter for user owner instance
120          * <p>
121          * @return User owner instance
122          */
123         User getDepartmentUserOwner ();
124
125         /**
126          * Setter for user owner instance
127          * <p>
128          * @param departmentUserOwner User owner instance
129          */
130         void setDepartmentUserOwner (final User departmentUserOwner);
131
132         /**
133          * Getter for timestamp when this entry has been created
134          * <p>
135          * @return Timestamp when this entry has been created
136          */
137         Date getDepartmentCreated ();
138
139         /**
140          * Setter for timestamp when this entry has been created
141          * <p>
142          * @param departmentCreated Timestamp when this entry has been created
143          */
144         void setDepartmentCreated (final Date departmentCreated);
145
146         @Override
147         boolean equals (final Object object);
148
149         @Override
150         int hashCode ();
151 }